I'm not sure why the gitignore isn't working, but for some reason it continually tries to add the /elpa/ directory to version control. Here is my gitignore (in the root of my dotfiles repository)
*.swp
*.swo
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*
.org-id-locations
*_archive
*_flymake.*
/eshell/history
/eshell/lastdir
/elpa/
*.rel
/auto/
.cask/
*.last
/elpa/*
/.emacs.d/elpa/*
Notice I tried 3 different elpas in here and none of them are working. Does anyone know why?
The directory structure is
|- configurations
- .gitignore
|- dotfiles
|- emacs.d
| -elpa
- init.el
- etc
/elpa/ (starting with a '/') means it will only ignore the one at the level of the .gitignore.
Not any elpa folder below that .gitignore file.
elpa/ would ignore all elpa folders.
(no need for elpa/*)
From gitignore man page:
A leading slash matches the beginning of the pathname.
For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c".
Related
I have a problem with the .gitignore file in my Multiplayer Unity game project (consists of a game server and a client project in a single repository). The .gitignore file ignores most of the files, but not the binary files from the library artifacts.
Image of binary files showing in Github Desktop.
I know the .gitignore file works because if I remove it there is 30000 changed files and 8000 without removing it.
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Bb]uilds/
[Ll]ogs/
[Uu]ser[Ss]ettings/
# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/
# Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta
# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*
# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*
# Visual Studio cache directory
.vs/
# Gradle cache directory
.gradle/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta
# Unity3D generated file on crash reports
sysinfo.txt
# Builds
*.apk
*.aab
*.unitypackage
# Crashlytics generated file
crashlytics-build.properties
# Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
# Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/*
Image of the repository folder with the 2 projects
hehe i think your answer is on the first line of the .gitignore
This .gitignore file should be placed at the root of your Unity project directory
All of those ignore paths without a preceeding / are only relative to the location of the .gitignore. It works like so:
Will ignore:
./Build/myBinary
Will not ignore:
./project1/Build/myBinary
./project2/Build/myBinary
Simplest solution is to duplicate your .gitignore and place one of each at the root of each project directory, not the repo directory.
Your directory should look like this:
myRepo
project1
.gitignore
Assets
...
project2
.gitignore
Assets
...
As mentioned, if files in these directories have already been committed they will need to be removed manually.
To be sure, assuming there are only binaries in this folders, try and delete them (from the Git index only, not from your disk), and check immediately (no commit needed) if your .gitignore applies.
cd /path/to/repo
git rm -r --cached path/to/folder/with/binaries/ # note the trailing slash
git check-ignore -v path/to/folder/with/binaries/aBinary # must be a file
If the last command does not return anything, then no .gitignore rule applies.
I have a .artifactignore at the root of my repository that looks like:
**/*
!**/bin/**/*
!**/obj/**/*
I can observe the .artifactignore being evaluated in the logs such as this:
Uploading pipeline artifact from d:\a\1\s for build #10471
Information, ApplicationInsightsTelemetrySender will correlate events with X-TFS-Session GUID
Information, DedupManifestArtifactClient will correlate http requests with X-TFS-Session GUID
Information, Using .artifactignore file located at: d:\a\1\s\.artifactignore for globbing
Information, Processing .artifactignore file surfaced 20721 files. Total files under source directory: 21471
This correctly excludes everything but bin and obj directories. I would like to extend this .artifactignore such that it has the additional behavior:
Ignores all pdb files regardless of their location
I have tried several variations:
**/*
!**/bin/**/*
!**/obj/**/*
*.pdb
**/*
!**/bin/**/*
!**/obj/**/*
.pdb
**/*
!**/bin/**/*
!**/obj/**/*
**/*.pdb
**/*
!**/bin/**/*
!**/obj/**/*
!!*.pdb
**/*
!**/bin/**/*
!**/obj/**/*
!!**/*.pdb
**/*
!**/bin/
!**/obj/
!!**/*.pdb
With several other variations I'm sure. All of these contain all of the .pdb files that are present in the bin folders.
How do I publish all the bin and obj folders without bringing along the .pdb files?
How do I publish all the bin and obj folders without bringing along the .pdb files?
I am afraid there is no such out of box syntax you could re-include a file if a parent directory of that file is excluded.
That means, you use the syntax !**/bin/**/* to exclude the parent folder bin from the .artifactignore file, you could not re-use the syntax *.pdb or any other to re-include the file .pdb.
As the document state:
Refer to the Git guidance on the .gitignore syntax, the syntax for
.artifactignore is the same.
To check the details info, you could refer this thread about .gitignore syntax.
As workaround for this issue, we could use following syntax to including all the file types except the .pdb file:
**/*
!**/bin/**/*.dll
!**/bin/**/*.xml
!**/bin/**/*.config
!**/obj/**/*.dll
!**/obj/**/*.xml
!**/obj/**/*.config
Hope this helps.
I pushed my newly initialized Ionic Apps to GitHub using the common practice:
git add .
git commit -m ""
git push origin master
But after this I went to check my Ionic project, everything was there except www folder. Can anyone tell me what went wrong?
There is a file named .gitignore, which limits the content for git
# Specifies intentionally untracked files to ignore when using Git
# http://git-scm.com/docs/gitignore
*~
*.sw[mnpcod]
*.log
*.tmp
*.tmp.*
log.txt
*.sublime-project
*.sublime-workspace
.vscode/
npm-debug.log*
.idea/
.ionic/
.sourcemaps/
.sass-cache/
.tmp/
.versions/
coverage/
dist/
node_modules/
tmp/
temp/
platforms/
plugins/
plugins/android.json
plugins/ios.json
www/
$RECYCLE.BIN/
.DS_Store
Thumbs.db
UserInterfaceState.xcuserstate
you could edit the file(delete www/).
my directory structure is like this:
roo
|
node_modules
|
packages
|
project1
|
lib
node_modules
project2
|
build
node_modules
I want to exclude lib, build or node_modules no matter where they are in the directory structure.
Here is my .gitignore
# dependencies
node_modules
/node_modules/
# testing
/coverage
# production
/build
/lib
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
.tern-port
packages/*/lib/*
packages/*/dist/*
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log
packages/*/node_modules
packages/*/lib
packages/*/build
Two options:
Use an .ignore file, and add the following to skip lib and node_moduels (for example):
*node_modules/
*lib/
Use the command line option to ignore a directory, the "--ignore-dir." For example, if you want to ignore node_modules and lib, you'd use this:
ag --ignore-dir lib --ignore-dir node_modules value
Note: I tested this with your exact directory structure.
In our semester group we are using eclipse as an IDE for developing a Compiler. The issue is when it comes to git. Which files are okay to be ignored and which are crucial. It works fine on my computer, but when it is synced with git and another member from the group is trying to use the workspace, there always seem to be some errors about main not showing or a package is wrong.
Bottom line: What is okay, and what is not okay to include in .gitignore file, so that every group member is able to compile the project?
I think the best solution is to generate .gitignore for yourself by gitignore.io.
Just choose tools that you used.
It depends on your requirement.
Usually Compiled source,Packages, Logs and databases, Eclipse specific files/directories are removed from git push. Also can keep configuration in separate(property) file.It is easy to place project in a different environment.
This is a sample gitignore file
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
# OS generated files #
######################
.DS_Store*
ehthumbs.db
Icon?
Thumbs.db
# Editor Files #
################
*~
*.swp
# Gradle Files #
################
.gradle
.m2
# Build output directies #
##########################
/target
*/target
/build
*/build
# IntelliJ specific files/directories #
#######################################
out
.idea
*.ipr
*.iws
*.iml
atlassian-ide-plugin.xml
# Eclipse specific files/directories #
######################################
.classpath
.project
.settings
.metadata
# NetBeans specific files/directories #
#######################################
.nbattrs