【发布时间】:2016-05-06 19:19:57
【问题描述】:
我不小心提交了一些不应该被跟踪的文件,应该为每个开发者自己生成。我已经为他们添加了一个模式到 .gitignore ,但这当然为时已晚,因为文件已经在 repo 中。我检查了这些问题的答案,但他们都说同样的话:
- How to make Git "forget" about a file that was tracked but is now in .gitignore?
- How to stop tracking and ignore changes to a file in Git?
- Remove a folder from git tracking
命令:
git rm --cached <file>
不起作用,因为如果我提交了该文件,那么其他开发人员在拉取文件后将删除他们的文件版本。
git update-index --assume-unchanged <file>
.. 也不起作用,因为文件仍在被跟踪,所以如果有人进行更改,除非每个开发人员都运行该命令,否则他们将被提交。无论哪种方式,它都会将文件保存在我们不想要的存储库中。
有没有办法让文件一开始就没有在存储库中?我想要与git rm --cached <file> 相同的行为,而不需要注意它会导致文件在拉取时被删除..
【问题讨论】:
-
请问你愿意在这个分支上做
git rebase吗? -
@TimBiegeleisen,我不知道那是什么
-
除了大家使用
git update-index之外,唯一的出路就是重写分支的历史。想想回到未来,除了对 Git 分支做这件事。你可以重写你添加这些文件的提交,这样文件就不会被添加。 -
@TimBiegeleisen,听起来它可以工作。我该怎么做这样的事情?
标签: git