git文件重命名之git mv命令
不像其它的 VCS 系統,Git 並不顯式跟蹤文件移動操作。 如果在 Git 中重命名了某個文件,倉庫中存儲的元數據並不會體現出這是一次改名操作。 不過 Git 非常聰明,它會推斷出究竟發生了什么,至於具體是如何做到的,我們稍后再談。
既然如此,當你看到 Git 的 mv 命令時一定會困惑不已。 要在 Git 中對文件改名,可以這么做:
$ git mv file_from file_to
它會恰如預期般正常工作。 實際上,即便此時查看狀態信息,也會明白無誤地看到關於重命名操作的說明:
$ git mv README.md README
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD
renamed: README.md -> README
其實,運行 git mv 就相當於運行了下面三條命令:
$ mv README.md README $ git rm README.md $ git add README
如此分開操作,Git 也會意識到這是一次改名,所以不管何種方式結果都一樣。 兩者唯一的區別是,mv 是一條命令而另一種方式需要三條命令,直接用 git mv 輕便得多。 不過有時候用其他工具批處理改名的話,要記得在提交前刪除老的文件名,再添加新的文件名。
注:該段引自https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%AE%B0%E5%BD%95%E6%AF%8F%E6%AC%A1%E6%9B%B4%E6%96%B0%E5%88%B0%E4%BB%93%E5%BA%93
