停止跟踪并忽略文件,就好像它从未添加到 Git 中一样



我不小心提交了一些不应该被跟踪的文件,应该为每个开发人员自己生成。我已经为他们添加了 .gitignore 的模式,但这当然为时已晚,因为文件已经在存储库中。我已经检查了这些问题的答案,但它们都说同样的事情:

  • 如何让 Git "忘记"一个被跟踪但现在在 .gitignore 中的文件?
  • 如何停止跟踪并忽略对 Git 中文件的更改?
  • 从 git 跟踪中删除文件夹

命令:

git rm --cached <file>

不起作用,因为如果我提交它,那么其他开发人员将在拉取后删除他们的文件版本。

git update-index --assume-unchanged <file>

..也不起作用,因为文件仍在被跟踪,因此如果有人进行更改,除非每个开发人员都运行该命令,否则它们将被提交。无论哪种方式,它都会将文件保存在存储库中,这是我们不想要的。

有没有办法让它好像文件从一开始就不在存储库中?我想要与git rm --cached <file>相同的行为,而不会警告它会导致文件在拉取时被删除。

"有没有办法让它好像文件从一开始就不在存储库中一样?"我个人不会使用[变基],因为这是要求所有其他开发人员采取一些行动的相同问题"

那么就没有解决方案了。这就是 git 的本质,犯错和推错是永远的。这是一个功能,而不是一个错误。

这是一个很常见的场景,答案可能对其他人有所帮助

阅读文档会更好。

最新更新