标题已经说得很清楚了。我试图将我的NuGet包添加到存储库中,但是除了.dll文件外,其他所有内容都被检测到。
gitignore文件不包含任何*.dll的引用。无论.dll文件位于存储库的任何位置,它们都无法被识别。info/exclude也为空。
我还尝试了对存储库进行克隆(从文件系统到文件系统,而不是从远程到文件系统),但没有成功解决这个问题。这个问题在两台不同的计算机上也发生了。
我可以手动添加.dll文件,但它们应该被跟踪。为什么它们没有被跟踪?
您的主目录中是否有 ~/.gitignore_global
或 ~/.gitignore
文件,它们也可能列出这些文件模式?
git check-ignore
命令来查找文件所在位置。在~/Documents/gitignore_global.txt
中找到了它。 - Matt Canty如果您使用SourceTree和默认设置,它将默认忽略所有的DLL...
工具=>选项=>Git然后"编辑文件"...在.dll=>"#.dll"前添加"#"...保存并关闭。
然后,在Windows资源管理器中打开“packages”文件夹,在GitBash终端中键入“git add .”,让其工作,回到SourceTree等待一秒钟,所有这些缺失的包DLL将显示出来供您提交和推送。
您需要明确告诉git跟踪任何新文件。
运行git add 文件名
将文件添加到git的索引中。
运行git commit
提交您索引中的更改。
git status
还应显示未跟踪的文件和目录列表。
如果您想列出gitignore忽略的存储库中的所有文件,可以运行:
git ls-files . --ignored --exclude-standard --others
如果您想列出仓库中所有未跟踪的文件:
git ls-files . --exclude-standard --others
我遇到了类似的问题。我无法将包目录中的.dll文件添加到git中,然后我发现sourcetree自动将gitignore_global.txt文件添加为全局git忽略设置。我从gitignore_global.txt文件中删除了*.dll,这对我来说运作良好。
gitignore_global.txt文件的位置如下:
C:\Users\XXXX\Documents\gitignore_global.txt 或者您可以在sourcetree的TOOL => OPTION => GIT选项卡中找到全局忽略列表
.gitignore
文件,或者在子目录中拥有更多的 .gitignore
文件。在 Linux 系统和 MacOS 中,全局的 git-ignore 文件很可能在你的 Home 目录下 ~/
。
~/.gitignore_global
ECHO %USERPROFILE%
或whoami
来找到本地用户。.gitconfig
。在其中查找gitignore的位置(例如,用户的Documents
文件夹)。
编辑:使用git config --list --show-origin
获取有关贡献git设置及其对应文件位置的详细信息。我知道这个问题很老了,但我为那些将来可能访问这个问题的人添加了一些内容。你可以像上面的答案所提到的那样修改你的全局忽略文件,但那会影响到你所有的git仓库。相反,如果你想要更细粒度的方法,你可以在你的单个项目.gitignores中排除特定的DLL或特定的文件夹。这将覆盖所有的忽略设置,并强制git检测和处理这些文件。我认为这是一个更好的方法。
.gitignore(针对你特定的项目)
# Custom ignores
!*.dll
# or
!My.specific.dll
# rest of .gitignore
git config --get core.excludesfile
会返回什么? - Antony Hatchkins