【问题标题】:Unable to make Git ask about removal of deleted files无法让 Git 询问删除已删除文件的问题
【发布时间】:2010-11-06 20:32:39
【问题描述】:

假设您有一个文件已提交到您的 Git 存储库中。

您只需通过以下方式删除文件

rm file

尽管您没有,已删除的文件仍保留在您的 Git 存储库中。

我的旧 Git 抱怨我在类似情况下无法在 git add/rm 文件之前提交。我希望恢复相同的行为。

如果不先解决文件存在的问题,如何让 Git 不允许你提交

【问题讨论】:

    标签: git commit


    【解决方案1】:

    如何使用:

    $ 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)文件

    【讨论】:

    • 更好的是,在 pre-commit 钩子中解析 'git diff-files --name-status' 的结果:如果一行以 D 开头,则退出并显示警告消息
    • @VonC:谢谢你的回答! --- 我有一个想法 git commit -am "hello"git add .; git commit -m hello. --- So git commit -a` 只是删除我“物理”删除的文件。
    【解决方案2】:

    即使该文件在您的文件系统中不存在,但它存在于 git 存储库中。克隆 repo 的人会得到该文件,即使它不在您的盒子上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 2015-04-30
      • 2012-07-09
      • 2023-03-25
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多