【问题标题】:Stop tracking and ignore file as if it were never added in Git停止跟踪并忽略文件,就好像它从未在 Git 中添加过一样
【发布时间】:2016-05-06 19:19:57
【问题描述】:

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


命令:

git rm --cached <file>

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

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

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

有没有办法让文件一开始就没有在存储库中?我想要与git rm --cached &lt;file&gt; 相同的行为,而不需要注意它会导致文件在拉取时被删除..

【问题讨论】:

  • 请问你愿意在这个分支上做git rebase吗?
  • @TimBiegeleisen,我不知道那是什么
  • 除了大家使用git update-index之外,唯一的出路就是重写分支的历史。想想回到未来,除了对 Git 分支做这件事。你可以重写你添加这些文件的提交,这样文件就不会被添加。
  • @TimBiegeleisen,听起来它可以工作。我该怎么做这样的事情?

标签: git


【解决方案1】:

“有没有办法让文件一开始就没有在存储库中?” “我个人不会使用 [a rebase],因为这与要求所有其他开发人员采取一些行动的问题相同”

那就没有办法了。这就是 git 的本质,犯错和被推动的错误是永远的。这是一项功能,而不是错误。

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

阅读the documentation会更好。

【讨论】:

    猜你喜欢
    • 2011-10-30
    • 2012-12-17
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多