git - 更改 .gitignore 时,所有开发人员都需要运行 `git rm --cached <path>` 吗?

标签 git gitignore git-rm

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

git rm --cached <path>

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

最佳答案

Will I have to tell everyone on my dev team that they need to run the git rm command to make sure nobody ever pushes changes to the new file?

简答

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

详细解答

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

  1. 在您的 .gitignore 中为其添加一个条目, 和
  2. 运行git rm --cached <path>为了停止跟踪文件(Git 不能忽略当前正在跟踪的文件)。

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

git rm --cached <path>

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

当然,这是假设在您推送之后没有人强制推送(这有可能抹杀您的更改)...

关于git - 更改 .gitignore 时,所有开发人员都需要运行 `git rm --cached <path>` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27368818/

相关文章:

git - 为什么 github 在我设置 SSH 身份验证时询问我的用户名/密码?

gitignore 文件夹中的所有内容(包含其所有内容的文件夹除外)

Git:不要忽略带有点的目录

Git:需要递归 'git rm'所有bin和obj文件夹的内容

git - 如何忽略存储库中的文件?

git - 您如何修复错误的 merge ,并将您的良好提交重播到固定的 merge 中?

git - 为什么 merge 后的 git hook 没有运行?

Android Studio 在提交更改对话框中显示未更改的文件

Git 提交到公共(public)子模块(master 分支)

git - create-react-app git 推送 node_modules