如何在不提交的情况下保留我的分阶段更改并处理不需要这些更改的其他问题?
我创建了一个分支说b1并进行了一些更改并进行了更改。现在我遇到了一个我需要处理的紧急问题,但我不需要在此处进行分阶段更改。所以我切换到分支b2并从上游取出并拉出。但是分阶段的变化仍然存在于b2分支
中答案 0 :(得分:4)
不要上台,而是stash这些变化。然后,您可以稍后将它们再次应用到您的工作副本中:
git stash
git checkout -b urgent-issue
git commit
git checkout -
git stash pop
答案 1 :(得分:2)
@ knittl给出的答案的替代方法是实际继续进行临时提交(继续阅读):
git commit -m 'WIP'
git checkout urgent-issue
提交作品后,您的工作目录将变得干净,您可以根据需要切换分支。当您想要返回当前分支时,可以继续工作并修改您所做的临时提交。
git checkout feature # return to original branch
# work work ... complete the commit
git commit --amend -m 'Finished the work I started earlier'
当我因为几个原因而从事重要工作时,我通常更喜欢在藏匿处进行临时提交。首先,它消除了对存储堆栈进行排序以寻找我想要应用的存储的需要(并且很容易让堆栈堆积旧垃圾)。其次,因为我知道我承诺完成了未完成的工作,所以它强迫我完成该功能。
答案 2 :(得分:0)
# No need to stage
# put your current changes in stash
git stash
# create and checkout to b1 branch
git checkout -b b2
# resolve urgent issue and push changes
# now get back to branch b1
git checkout b1
# Apply stashed changes back
git stash pop