更改 .gitignore 文件时,所有开发者都需要运行 `git rm --cached <path>` 命令吗?

4
如果我将已经被Git跟踪的文件添加到我的.gitignore文件中,我可以简单地运行:
git rm --cached <path>

为了应用新规则,我将其推送到服务器上,服务器将不再接收我的更改。我需要告诉开发团队的每个人运行git rm命令以确保没有人会向新文件推送更改吗?


马上要看你的回答了。是的,.gitignore 文件也已经被提交并推送到仓库中。 - Morgan Delaney
1个回答

3

我需要告诉我的开发团队,他们需要运行 git rm 命令,以确保没有人会推送更改到新文件吗?

简短回答

不需要。您只需要提交并推送到远程。

详细回答

如果您想要忽略一个已经被 Git 跟踪的文件,您确实需要:

  1. 在您的 .gitignore 中添加该文件的条目,并且
  2. 运行 git rm --cached <path> 命令以停止跟踪该文件(Git 无法忽略当前正在跟踪的文件)。

现在,如果您提交并推送到远程,那么该文件将不再在远程仓库中被跟踪。因此,在您的协作者将远程最新更改合并到他们自己的本地仓库中后(例如通过拉取),该文件也将不再在他们自己的仓库中被跟踪。因此,他们将不需要运行

git rm --cached <path>

此外,由于您的.gitignore是仓库的一部分(即它正在被Git跟踪),您的合作者甚至不需要为相关文件添加条目;该条目已经在.gitignore中,并作为他们自己本地存储库中已合并的更改的一部分。当然,这是在假设没有人在您推送后执行强制推送(可能会抹掉您的更改)的情况下...

好的,听起来当开发者B从远程拉取时,这将包括开发者A不再跟踪该文件的事实。编辑:还有,谢谢! - Morgan Delaney

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接