3

我将目录从toolsto重命名Tools并提交。在此之后,我的遥控器中有两个目录。所以由于某种原因 git 没有删除 tools 目录。如何防止这种情况或解决当前问题?

4

2 回答 2

3

您在没有通知 git 的情况下重命名了一个目录,因此 git 将您的Tools目录视为一个全新的目录并将其添加到版本控制中。

  • 要解决此问题,您可以要求 git 删除名为的旧目录tools

    git rm -r tools
    git commit
    
  • 另一种方法是git add -u检查工作目录的当前状态并更新暂存区域以反映此状态。因此 git 会意识到任何在其背后被删除的目录。

    # From the root of your repo
    git add -u .
    git commit
    
  • 并且对于将来,使用git mv来执行重命名,而不是直接在 Shell 或命令提示符下执行重命名。尽管 git 足够聪明,可以在发现删除和添加之间存在显着相似之处时跟踪移动,但我更喜欢明确地通知 git 移动操作。

    git mv tools Tools
    git commit
    
于 2013-04-21T19:00:33.847 回答
0

如果:

  • 你没有做任何其他的提交
  • 没有其他人克隆或从您的远程仓库中提取

我建议你:

  • 重置为上一个提交(其中包含工具),git reset --hard HEAD^(确保您没有任何正在进行的工作,或先将其隐藏)
  • 正确重命名您的目录:git mv tools Tools
  • 强制推动:git push --force
于 2013-04-22T05:50:28.917 回答