【问题标题】:git renaming problems on WindowsWindows上的git重命名问题
【发布时间】:2013-04-14 13:45:50
【问题描述】:

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

【问题讨论】:

  • git add --all 包括删除和创建。

标签: git rename


【解决方案1】:

如果:

  • 您没有进行任何其他提交
  • 没有其他人从您的远程仓库克隆或拉取数据

我建议你:

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

【讨论】:

    【解决方案2】:

    您在没有通知 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
      

    【讨论】:

    • 我无法创建git rm,因为我在 Windows 上没有这个目录(因此不区分大小写的文件系统)。 git add -u 什么都不做。 git mv 再次不起作用,因为我没有这个目录。
    猜你喜欢
    • 2015-08-26
    • 2015-07-03
    • 2018-09-08
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 2011-03-12
    • 2019-03-31
    • 2016-10-09
    相关资源
    最近更新 更多