git存储库忽略所有.dll

时间:2013-03-20 05:00:46

标签: git gitignore

标题说明了一切。我正在尝试将我的NuGet包添加到存储库。除了.dll文件之外的所有文件都被检测到。

gitignore文件不包含对* .dll的引用。当位于整个存储库中的任何位置时,都无法识别.dll文件。 info / exclude也是空的。

我还克隆了存储库(文件系统到文件系统,而不是从远程到文件系统),没有运气。这个问题也发生在两台不同的计算机上。

我可以手动添加.dll文件,但应该跟踪它们。他们为什么没有被跟踪?

8 个答案:

答案 0 :(得分:115)

您的主目录中是否有~/.gitignore_global~/.gitignore,也可能列出这些文件模式?

请参阅https://help.github.com/articles/ignoring-files

答案 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跟踪任何新文件。

  1. 运行git add filename将文件添加到git的索引。

  2. 运行git commit以提交索引中的更改。

  3. 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