我想知道如何在本地使用gitignore忽略文件,而不将其推送(因为其他在项目上工作的人不应该得到我添加的.gitignore文件更新)。
简单来说,在运行git status命令后,我只想看到:
modified: .gitignore
因为我将我的文件添加到了.gitignore中,但现在我想删除上面的那一行而不用推送它。
因为我已将我的文件添加到.gitignore中,但现在我希望在不进行推送的情况下去掉上面的行。我想知道如何在本地使用gitignore忽略文件,而不将其推送(因为其他在项目上工作的人不应该得到我添加的.gitignore文件更新)。
简单来说,在运行git status命令后,我只想看到:
modified: .gitignore
因为我将我的文件添加到了.gitignore中,但现在我想删除上面的那一行而不用推送它。
因为我已将我的文件添加到.gitignore中,但现在我希望在不进行推送的情况下去掉上面的行。对于本地忽略,您应该使用.git/info/exclude
文件而不是.gitignore
:
特定于某个存储库但不需要与其他相关存储库共享的模式(例如,存储在存储库中但特定于一个用户工作流程的辅助文件)应放入
$GIT_DIR/info/exclude
文件中。
这两个文件接受相同的格式。
.git/info/exclude
链接到项目根目录下的.gitignore_local
以便于查看(并将其添加到.gitignore
中)。 - flurdy.gitignore
文件,可以在.gitignore_local
中自我引用它自己。 - Frédéric Bolduc大多数情况下,应该提交Gitignore文件,因为忽略的内容很可能也会被团队中的其他开发人员忽略。
但是,如果您确实需要将其从被跟踪的本地更改中排除在外,则可以执行以下操作:
git update-index --assume-unchanged .gitignore
这将使其从修改列表中“消失”。但是,如果其他人更改了它,则在拉取时您将无法获取更改。然后,您需要执行以下操作将其重新添加到跟踪列表中,并再次进行拉取:
git update-index --no-assume-unchanged .gitignore
git update-index --assume-unchanged
是一个最好避免使用的足枪。原因在于名称——即使您对某些内容进行了更改,也会忽略您所做的更改事实。 git status
将显示所有内容都已提交并且工作正常,即使您查看的现实情况与拥有您代码“相同”(但真的不同)版本的另一个人的视图不同。在这种情况下,最好使用.git/info/exclude
。 - jsageryd.git/info/exclude
。 - undefined.gitignore
文件包含了不希望提交/推送到远程仓库的文件和文件夹列表。
但是,提交和推送.gitignore
文件是可以接受的。这是一种非常常见的做法。所以,请提交.gitignore
文件并继续进行您的代码工作。
阅读此thread以获取关于提交.gitignore
文件的参考和最佳实践。
为了排除没有.gitignore文件的文件
git update-index --assume-unchanged project/file.php
从排除列表中移除文件
git update-index --no-assume-unchanged project/file.php
这将有助于在本地忽略Git文件,而无需将其添加到.gitignore文件中