我正在分支A并且未完成功能/任务。然后我需要切换到另一个分支B以便快速修复。当我尝试切换另一个分支时,Git迫使我保存本地更改,否则我将失去所有本地更改。在本地分支上,不想提交更改,但需要切换到另一个分支
我需要提交我的不完整代码。有没有什么办法可以在多个分支之间切换而不需要提交和丢失任何代码?还是有更好的方法来处理这种情况?
我正在分支A并且未完成功能/任务。然后我需要切换到另一个分支B以便快速修复。当我尝试切换另一个分支时,Git迫使我保存本地更改,否则我将失去所有本地更改。在本地分支上,不想提交更改,但需要切换到另一个分支
我需要提交我的不完整代码。有没有什么办法可以在多个分支之间切换而不需要提交和丢失任何代码?还是有更好的方法来处理这种情况?
一个选项,如mipadi demonstrates,只是简单地使用git stash
。
另一种选择是简单地只是提交您目前的工作正在进行中,转换分支,然后当你准备切换回来,做一个混合重置回以前的承诺:
# While working on "feature" branch,
# you suddenly need to go work on a hotfix:
$ git commit --all --message "Backup my feature work"
$ git checkout -b hotfix master
# You did your hotfix, and are ready to go back to feature
$ git checkout feature
$ git reset head^
git reset head^
会在执行备份提交之前将混合重置回到提交,并且在备份提交中所做的所有更改都将恢复到您的工作副本。从official Linux Kernel documentation for git reset
(重点煤矿):
的[保存的Git临时更改]重置索引而不是工作树(即更改的文件将被保留,但不标记为提交),并报告一直没有什么更新。这是默认操作。
可能重复(http://stackoverflow.com/questions/6800778/saving-git-changes-temporarily) – 2013-08-06 07:04:09