在 Git 仓库中,如何正确地重命名一个目录?

1005

我认为将要重命名的目录复制到一个新目录,然后删除旧目录,并使用git addgit commitpush命令来操作应该可以实现。但这是最好的方式吗?


1
可能是重复问题:如何告诉Git这是同一个目录,只是名称不同 - Christopher Peisert
6
就Git而言,复制和删除与移动是相同的事情。Git会以相同的方式记录复制、删除和移动操作。 - Dietrich Epp
13个回答

1

提醒一下,如果您不提供完整的文件夹路径,那么接受的答案将无法正常工作。否则,您将会收到致命错误:坏源


这并没有回答问题。一旦您拥有足够的声望,您就可以评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审阅 - The Dreams Wind

0

在Git中重命名文件比较困难,因为索引要进行更改并且树对象将在提交后创建。 我曾经遇到过将templates重命名为Templates的问题...... 我通过以下方式解决了这个问题:

  • 在bash中将Templates复制到templates [cp -r Templates templates] (git mv Templates templates 不能用)
  • 在bash中删除Templates [rm -r Templates](首先检查复制是否成功)
  • 从索引中删除Templates文件[使用“git ls-files -s”查看索引,“git rm ”您可以使用通配符,如git rm Templates / *,继续检查索引]
  • 将重命名的路径添加到索引中(“git add-v。”和使用“git ls-files -s”检查结果)
  • 提交[“git commit -m”重命名......“
  • 如果您有远程工作 git push <to wherever origin,

-27

只需重命名文件夹即可。Git是一个“内容跟踪器”,因此SHA1哈希值相同,Git知道您已将其重命名。唯一改变的是树对象。

$ rm <directory> // remove the directory
$ git add . // add changes to the git
$ git commit // commit removed directory

5
并非总是有效的。对于我来说,类似20%的文件它确实没有起作用... - Tomáš Fejfar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接