在git中重命名文件

9

我在GitHub上有两个文件:

  1. index.html
  2. backup.html

现在我想将backup.html重命名为index.html,并将index.html重命名为backup.html。我不关心每个文件的更改历史记录。如何在Git中实现这一点?

3个回答

16

这里将包含历史记录:

git mv backup.html backup2.html
git mv index.html backup.html
git mv backup2.html index.html

在不保留历史记录的情况下,只需在文件系统中将文件重命名为您喜欢的名称。


2
请注意,git mv 并没有做什么特别的事情。这更或多或少是 Charles Bailey 回答的快捷方式。 - Tyler
1
git mv 会保留重命名文件的历史记录。 - tom
1
正确,但是Charles Bailey的回答也是对的。不像svn那样有可能保留历史记录或者不保留,Git总是在可能的情况下保留历史记录。 - Tyler
@MatrixFrog 我已经“吃过亏了”(https://dev59.com/mWXWa4cB1Zd3GeqPQMe_),这并不像它应该的那样漂亮(https://dev59.com/4XE95IYBdhLWcg3wbtXO)。历史记录可能在某个地方得到保留,但你无法以任何简单的方式找到它们,特别是对于二进制文件或某些特定情况。这不仅仅是“可能时”,跟踪文件历史记录是Git开发人员(即Linus)高度忽视的功能之一(https://groups.google.com/forum/?fromgroups#!topic/git-version-control/07oWjHiQTtg)。 - cregox

3

如果您不需要添加任何新路径进行跟踪,那么您无需执行任何特殊操作。

您只需将文件移动到新位置并使用 git add 命令更新其内容即可。

mv index.html tmpname
mv backup.html index.html
mv tmpname backup.html

接着:

git add index.html backup.html

或者:

git add -u

或者:

git commit -a -m "swap backup.html and index.html"

1

使用git mv命令将第一个文件移动到一个临时名称,然后将第二个文件移动到第一个文件的位置,最后再将临时文件移动到第二个文件的位置。


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