【发布时间】:2010-11-06 20:32:39
【问题描述】:
假设您有一个文件已提交到您的 Git 存储库中。
您只需通过以下方式删除文件
rm file
尽管您没有,已删除的文件仍保留在您的 Git 存储库中。
我的旧 Git 抱怨我在类似情况下无法在 git add/rm 文件之前提交。我希望恢复相同的行为。
如果不先解决文件存在的问题,如何让 Git 不允许你提交?
【问题讨论】:
假设您有一个文件已提交到您的 Git 存储库中。
您只需通过以下方式删除文件
rm file
尽管您没有,已删除的文件仍保留在您的 Git 存储库中。
我的旧 Git 抱怨我在类似情况下无法在 git add/rm 文件之前提交。我希望恢复相同的行为。
如果不先解决文件存在的问题,如何让 Git 不允许你提交?
【问题讨论】:
如何使用:
$ git commit -a
来自git commit manual页面:
git commit -a命令首先查看你的工作树,注意到你已经修改了 hello.c 并删除了 goodbye.c,并为你执行了必要的 git add 和 git rm。
如果您不想自动解决,而只需要警告,则可以使用“pre-commit hook”。
chmod a+x .git/hooks/pre-commit
该脚本将测试输出
git ls-files -d
并警告您删除(但不是'git rm'ed)文件
【讨论】:
git commit -am "hello" 与 git add .; git commit -m hello. --- So git commit -a` 只是删除我“物理”删除的文件。
即使该文件在您的文件系统中不存在,但它存在于 git 存储库中。克隆 repo 的人会得到该文件,即使它不在您的盒子上。
【讨论】: