我有一个Android项目,错误地将 bin 文件夹添加到舞台并提交了它。现在我如何忽略这个 bin 文件夹并永远忽略它? 我将 bin / 添加到 .gitignore 文件中,但没有任何更改,我在SourceTree中看到此文件夹中的所有文件都在工作副本中。
我使用SourceTree作为git客户端。
答案 0 :(得分:4)
在忽略文件夹的同时,您需要git rm
它。 Git只会忽略尚未受其控制的文件。
但请注意:这样做会导致git为其他任何提取这些更改的人删除该文件夹。你最好确保文件夹只是建筑物的输出,否则可以很容易地重建。
如果您还没有发布更改(也就是说,如果您从未将它们推送到任何地方并且没有人从您那里取出它们),那么您可以选择重写历史记录。您可以简单地说git reset --soft the_commit_before_you_added_bin
(当然,您需要实际的提交ID或其他名称,如HEAD~3
等),在添加之前基本上“取消提交”。你的工作副本仍然会有最新版本的文件,但Git会忘记你提交它们。 (这也意味着你失去了中间变化。)然后你可以重做你的提交,这次要小心避免bin
。
Git有一个filter-branch
命令可以帮助自动化所有这些,甚至可以保留中间变化。我从来没有用过它,也无法告诉你如何使用它。
强制性大胆警告:
仅撤消/重写从未被推送过的提交。否则,随之而来的就是古怪。