重命名文件后,我重新命名一个文件在一个Git仓库有:未料日志中的Git
git mv oldname.py newname.py
然后git status
给了我需要提交的文件重命名的变化。我没有写git add newname.py
。 我承诺并推送到GitHub,然后文件的名称已成功更改。 但是当我在GitHub上看到文件的历史记录时,它只包含最后一次提交,而不是所有的提交。
有人可以请我解释发生了什么?
重命名文件后,我重新命名一个文件在一个Git仓库有:未料日志中的Git
git mv oldname.py newname.py
然后git status
给了我需要提交的文件重命名的变化。我没有写git add newname.py
。 我承诺并推送到GitHub,然后文件的名称已成功更改。 但是当我在GitHub上看到文件的历史记录时,它只包含最后一次提交,而不是所有的提交。
有人可以请我解释发生了什么?
Git在移动时不会移动文件中的编辑历史记录。它会在做补丁,还原提交等时产生大量问题。git mv
是删除文件并添加到被跟踪文件列表的快捷方式。
GitHub上不显示文件的完整历史记录,但你可以用git log --follow newname.py
做手工,之前git mv
git mv a b
自动将重命名文件b
添加到暂存区域。这实际上是一样的做
mv a b
git rm a
git add b
或
cp a b
git rm a
git add b
在这种情况下,人们可以清楚地看到为什么有些客户如GitHub的Web界面将考虑这两个文件作为单独的。
得到它应该显示的变化。谢谢。 – Steven
明白了。谢谢。 – Steven