如果有一些变化被添加到索引中,有一些变化没有被添加到索引中,我该如何交换这两组变化?
最佳答案
它认为这对于临时提交来说是最简单的。当您有暂存和未暂存提交时,您在尝试对更改重新排序时可能会发生冲突。
对分阶段的更改进行提交,创建一个分支供以后使用:
git commit -m "Saved staged"
git branch save-staged
使用未暂存的更改进行提交(如果未暂存的更改包含新文件,您可能需要先明确地 git add
它们):
git commit -a -m "Unstaged changes"
将未暂存的更改重新定位到原始 HEAD 上(可能涉及冲突解决):
git rebase --onto HEAD^^ HEAD^
将暂存变更重新定位到未暂存变更(可能涉及冲突解决):
git reset --hard save-staged
git rebase --onto HEAD@{1} HEAD^
最后,将索引重置为(最初)未暂存的更改:
git reset HEAD^
并将分支指针移回原来的HEAD:
git reset --soft HEAD^
删除了临时分支:
git branch -D save-staged
关于git - 在 git 中交换分阶段和非分阶段更改的最短方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3573410/