可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
Title says it all. I am trying to add my NuGet packages to the repository. Everything but the .dll files are being detected.
The gitignore file contains no references to *.dll. The .dll files don't get recognized when located anywhere in the entire repository. info/exclude is also empty.
I have also cloned the repository (file-system to file-system as opposed from remote to file-sysytem) with no luck. This issue also happens on two different computers.
I could add the .dll files manually, but they should be tracked. Why are they not being tracked?
回答1:
Do you have either ~/.gitignore_global
or ~/.gitignore
in your home directory which could also be listing these file patterns?
See https://help.github.com/articles/ignoring-files
回答2:
If you use SourceTree and the default setting it will ignore all DLLs by default... Tools=>Options=>Git then "Edit File"... add a "#" before .dll => "#.dll" ... save and close.
Then for Windows Explorer in your packages folder in open a GitBash terminal and type "git add ." and let it work, back into SourceTree wait a second and all those missing package DLLs will show up for you to commit and push.
回答3:
I could add the .dll files manually, but they should be tracked. Why are they not being tracked?
No, they shouldn't be tracked, unless you've added them. Only files which are already added and committed are tracked; that's what "tracked" means.
Try manually adding one of them via git add
and it will tell you why it's ignoring them, and prompt you to use git add -f
to add the file anyways.
回答4:
You need to explicitly tell git to track any new files.
Run git add filename
to add the file to git's index.
Run git commit
to commit changes in your index.
git status
should also show the list of untracked files and directories.
If you want to list all the files in the repo which are ignored by gitignore, you can run:
git ls-files . --ignored --exclude-standard --others
If you want to list all the untracked files in the repo:
git ls-files . --exclude-standard --others
回答5:
In my case, there were no .dll references in the .gitignore file, and I had no global file. However, in the .git subdirectory, I found a file called ms-persist.xml. I closed all instances of Visual Studio, and then added my missing .dlls manually to that file. When I re-opened visual studio, the .dlls were showing as needing to be checked in. I checked them in and now I'm golden...
回答6:
I faced a similar issue. I am unable to add .dll file from package directory to my git then i found gitignore_global.txt file as sourcetree automatically added this file as a global git ignore setting. I removed *.dll from gitignore_global.txt file and its work fine for me.
Location of gitignore_global.txt file as below
C:\Users\XXXX\Documents\gitignore_global.txt or you can find it out from sourcetree TOOL => OPTION => GIT tab and find out global ignore list
回答7:
You have a global .gitignore
somewhere or further .gitignore
files in subdirectories - relative to your project's root.
On Linux Systems and MacOS the global git-ignore is most likely in your Home ~/
~/.gitignore_global
On Windows it is likely in your User Directory. Either your local user (which you can find out by typing in ECHO %USERPROFILE%
or whoami
at the command-line.
If it is not there, then surely a .gitconfig
is present instead. Look herein for the location of the gitignore (e.g. the User's Documents
folder).
Edit:
Use git config --list --show-origin
to get details of the contributing git-settings and their corresponding file locations.