标题说明了一切。我正在尝试将我的NuGet包添加到存储库。除了.dll文件之外的所有文件都被检测到。
gitignore文件不包含对* .dll的引用。当位于整个存储库中的任何位置时,都无法识别.dll文件。 info / exclude也是空的。
我还克隆了存储库(文件系统到文件系统,而不是从远程到文件系统),没有运气。这个问题也发生在两台不同的计算机上。
我可以手动添加.dll文件,但应该跟踪它们。他们为什么没有被跟踪?
答案 0 :(得分:115)
您的主目录中是否有~/.gitignore_global
或~/.gitignore
,也可能列出这些文件模式?
答案 1 :(得分:93)
如果您使用SourceTree和默认设置,它将默认忽略所有DLL ... Tools => Options => Git然后“编辑文件”...在 .dll =之前添加“#” > “# .dll”...保存并关闭。
然后在打开GitBash终端的packages文件夹中的Windows资源管理器中输入“git add”。让它工作,回到SourceTree等一下,所有那些丢失的包DLL将显示给你提交和推送。
答案 2 :(得分:10)
我可以手动添加.dll文件,但应该跟踪它们。他们为什么没有被跟踪?
不,除非您已添加,否则不应进行跟踪。仅跟踪已添加和提交的文件;这就是“跟踪”的含义。
尝试通过git add
手动添加其中一个,然后告诉您忽略它们的原因,并提示您使用git add -f
来添加文件。
答案 3 :(得分:2)
您需要明确告诉git跟踪任何新文件。
运行git add filename
将文件添加到git的索引。
运行git commit
以提交索引中的更改。
git status
还应显示未跟踪的文件和目录列表。
如果要列出回购中被gitignore忽略的所有文件,您可以运行:
git ls-files . --ignored --exclude-standard --others
如果要列出仓库中所有未跟踪的文件:
git ls-files . --exclude-standard --others
答案 4 :(得分:1)
就我而言,.gitignore文件中没有.dll引用,而且我没有全局文件。但是,在.git子目录中,我找到了一个名为ms-persist.xml的文件。我关闭了Visual Studio的所有实例,然后手动将我丢失的.dll添加到该文件中。当我重新打开visual studio时,.dll显示需要检入。我检查了它们,现在我是金色的......
答案 5 :(得分:1)
我遇到了类似的问题。我无法将包目录中的.dll文件添加到我的git然后我发现gitignore_global.txt文件作为sourcetree自动将此文件添加为全局git ignore设置。我从gitignore_global.txt文件中删除了* .dll,它的工作正常。
gitignore_global.txt文件的位置如下
C:\ Users \ XXXX \ Documents \ gitignore_global.txt或者您可以从sourcetree找到它TOOL => OPTION => GIT选项卡并找出全局忽略列表
答案 6 :(得分:0)
在子目录中有一个全局.gitignore
某个或更多.gitignore
个文件 - 相对于项目的根目录。
在Linux系统和MacOS上,全局git-ignore最有可能出现在您的主页~/
~/.gitignore_global
在Windows上,它可能位于您的用户目录中。您的本地用户(您可以通过在命令行键入ECHO %USERPROFILE%
或whoami
来找到该用户。
如果不存在,那么肯定会出现.gitconfig
。在此查看gitignore的位置(例如用户的Documents
文件夹)。
修改强>:
使用git config --list --show-origin
获取有贡献的git设置及其相应文件位置的详细信息。
答案 7 :(得分:0)
我知道这个问题很旧,但是我为将来可能会访问此问题的其他人补充。您可以按照上面提到的答案修改全局忽略文件,但这会影响所有的git repos。相反,如果您希望使用更精细的方法,则可以在单个项目.gitignores中排除特定的DLL或特定的文件夹。这将覆盖所有忽略设置,并强制由git检测和处理文件。我认为这是一种更好的方法。
.gitignore(针对您的特定项目)
# Custom ignores
!*.dll
# or
!My.specific.dll
# rest of .gitignore