2013-04-21 35 views
3

我将tools的目录重命名为Tools并提交。在此之后,我有两个目录在我的远程。所以出于某种原因,git没有删除工具目录。如何防止或解决当前的问题?Windows上的git重命名问题

+0

'git add --all'包含删除和创建。 – TheBuzzSaw 2013-04-21 18:24:23

回答

0

如果:

  • 你没有做任何其他的承诺
  • 别人克隆或从远程回购拉

我劝你:

  • 复位到以前的承诺(其中载工具),git reset --hard HEAD^(确保你没有任何正在进行的工作,或者先藏起来吧)
  • 正确命名目录:git mv tools Tools
  • 力一推:git push --force
2

你在不通知git的情况下重新命名了一个目录,因此git认为你的Tools目录是一个新的新目录,并将它添加到版本控制中。

  • 要解决这个问题,你可以问混帐删除名为tools旧目录:

    git rm -r tools 
    git commit 
    
  • 另一种方法是git add -u,检查你的工作目录的当前状态,并更新以反映这一状态。所以git会意识到任何被删除的目录。

    # From the root of your repo 
    git add -u . 
    git commit 
    
  • 和将来,使用git mv来执行,而不是直接在壳或命令提示进行重命名的重命名。尽管如果git在删除和添加之间发现显着的相似性时足够聪明,可以跟踪移动,但我更愿意明确告知git移动操作。

    git mv tools Tools 
    git commit 
    
+0

我无法制作'git rm',因为我没有这个目录,所以我在Windows上(因此不区分大小写的文件系统)。 'git add -u'什么都不做。 'git mv'再次不起作用,因为我没有这个目录。 – user14416 2013-04-22 00:22:47