已重命名并修改git中的文件。如何进行两次提交,一次用于重命名,一次用于内容?

已重命名并修改git中的文件。如何进行两次提交,一次用于重命名,一次用于内容?,git,Git,我在谷歌和stackoverflow上搜索了答案,但没有找到任何答案。是的,我可以阅读手册页并自己找出答案,但我认为这里应该有一个易于访问的最佳实践答案来回答这个问题 因此,假设oldname.py被重命名为newname.py并进行了修改,现在我想首先提交重命名操作,而不提交任何更改的内容,然后在新的单独提交中提交更改。尚未进行任何更改。以下是一种方法: # choose some way to "stash" your modifications # either use git stash

我在谷歌和stackoverflow上搜索了答案,但没有找到任何答案。是的,我可以阅读手册页并自己找出答案,但我认为这里应该有一个易于访问的最佳实践答案来回答这个问题


因此,假设
oldname.py
被重命名为
newname.py
并进行了修改,现在我想首先提交重命名操作,而不提交任何更改的内容,然后在新的单独提交中提交更改。尚未进行任何更改。

以下是一种方法:

# choose some way to "stash" your modifications
# either use git stash (you will need to 'git add' the new files, but not 'git commit' them)
# or simply rename them, e.g : mv newname.py newname.py.keep

$ git checkout oldname.py
$ git mv oldname.py newname.py
$ git commit

# get back your "stashed" content
# either 'git stash pop', and solve conflicts
# or rename the files to their target name, e.g : mv newname.py.keep newname.py

$ git add newname.py
$ git commit

我会:1)改名为旧名字。2) 添加/提交3)重命名为新名称。4) 添加/提交。注意:这不是您所说的顺序,但您可能不在乎。下次修改之前,请记住
git mv
它。@ArnaudDenoyelle我想要相反的顺序,是的,但在这种特定情况下,用另一种方式做是可以的。我仍然想知道以相反的顺序做这件事的最佳方法。@nitgit以相反的顺序,你可以用
git stash
/
git stash pop
做一些事情,但是重命名可能会使
git stash pop
失败。重命名文件3次应该可以做到这一点,但可能有更好的解决方案。太好了,谢谢!我会回到这个答案,等我有足够的声誉时再投票表决。:-)@不管答案如何,如果它解决了你的问题,你都应该接受它。接受答案并不需要名声。看见