4

如果我将Git 已经跟踪的文件添加到我的.gitignore,我可以简单地运行

git rm --cached <path>

应用新规则。我将它推送到服务器,服务器将不再接收我的更改。我是否必须告诉我的开发团队中的每个人他们需要运行git rm命令以确保没有人将更改推送到新文件?

4

1 回答 1

3

我是否必须告诉我的开发团队中的每个人他们需要运行git rm命令以确保没有人将更改推送到新文件?

简短的回答

不,您所要做的就是提交并推送到远程。

详细解答

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

  1. 在您的.gitignore, 和
  2. 运行git rm --cached <path>以停止跟踪文件(Git 不能忽略当前正在跟踪的文件)。

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

git rm --cached <path>

此外,因为.gitignore是存储库的一部分(即它被 Git 跟踪),您的协作者甚至不需要为相关文件添加条目;作为您的更改的一部分,该条目将已经存在于.gitignore他们自己的本地存储库中。

当然,这是假设在您推动之后没有人进行强制推动(这有可能消除您的更改)......

于 2014-12-08T23:42:59.410 回答