我刚刚在我的新项目的根上做了一个git初始化。
然后我创建了一个.gitignore文件。
现在,当我输入git status时,.gitignore文件出现在未跟踪文件列表中。为什么呢?
我刚刚在我的新项目的根上做了一个git初始化。
然后我创建了一个.gitignore文件。
现在,当我输入git status时,.gitignore文件出现在未跟踪文件列表中。为什么呢?
当前回答
以防别人和我们有同样的痛苦。 我们想要排除一个已经提交的文件。
这篇文章更有用: 使用.git/info/exclude太晚了
具体来说,你需要忽略一个文件实际上是使用命令git remove 参见git rm (http://www.kernel.org/pub/software/scm/git/docs/git-rm.html)
你通过去测试它
Git rm——dry-run *.log (如果你说想要排除所有日志文件)
这将输出如果运行它将被排除的内容。
then
你通过运行它
Git rm *.log (或任何你想要的文件名路径/表达式)
然后在.gitignore文件中添加*.log行。
其他回答
其思想是将特定于项目的文件放入.gitignore文件中,并(如前所述)将其添加到存储库中。例如.pyc和.o文件,测试套件创建的日志,一些fixture等等。
对于您自己的安装程序创建的但不一定会出现在每个用户面前的文件(例如。swp文件,如果您使用vim,隐藏的ecplise目录等),您应该使用.git/info/exclude(如上所述)。
在我的例子中,我想排除一个现有文件。 仅修改。gitignore无效。 我是这样做的:
git rm --cached dirToFile/file.php
vim .gitignore
git commit -a
通过这种方式,我从缓存中清除了我想要排除的文件,并将其添加到.gitignore。
首先,正如许多人已经说过的,Git应该跟踪你的.gitignore(因此不应该忽略它)。让我来解释一下原因。
(TL;DR:提交.gitignore文件,并使用全局的.gitignore来忽略由IDE或操作系统创建的文件)
您可能已经知道,Git是一个分布式版本控制系统。这意味着它允许您在不同的版本之间来回切换(即使开发已经分散到不同的分支),它还允许多个开发人员在同一个项目上工作。
Although tracking your .gitignore also has benefits when you switch between snapshots, the most important reason for committing it is that you'll want to share the file with other developers who are working on the same project. By committing the file into Git, other contributers will automatically get the .gitignore file when they clone the repository, so they won't have to worry about accidentally committing a file that shouldn't be committed (such as log files, cache directories, database credentials, etc.). And if at some point the project's .gitignore is updated, they can simply pull in those changes instead of having to edit the file manually.
当然,会有一些文件和文件夹您想要忽略,但这是特定于您的,并不适用于其他开发人员。但是,这些不应该出现在项目的.gitignore中。还有两个地方可以忽略文件和文件夹:
Files and folders that are created by your operating system or IDE should be placed in a global .gitignore. The benefit is that this .gitignore is applied to all repositories on your computer, so you don't have to repeat this for every repository. And it's not shared with other developers, since they might be using a different operating system and/or IDE. Files that don't belong in the project's .gitignore, nor in the global .gitignore, can be ignored using explicit repository excludes in your_project_directory/.git/info/exclude. This file will not be shared with other developers, and is specific for that single repository
如果你想将被忽略的文件列表存储在Git树之外,你可以使用. Git /info/exclude文件。它只适用于你的回购结帐。
我发现忽略烦人的. ds_store文件的最佳位置是在.git/info/exclude文件中。
当您在IntelliJ中设置git存储库时,它似乎会自动执行此操作。