突发高优先级任务的Git工作流程

时间:2012-02-26 22:20:46

标签: git

我正在开发一个功能分支,其中包含分阶段和非分阶段更改。高优先级的任务进来了。我该怎么办?

似乎git checkout未触及暂存和未暂停的更改。我应该这样:

git add -A
git commit -am "must stop working to fix bug!"
git checkout master
git checkout -b "bug_branch"

4 个答案:

答案 0 :(得分:7)

您可以使用git stash save临时将您的工作提交到存储,修复错误或执行您需要执行的任何高优先级任务,然后使用git stash apply应用存储并继续工作。< / p>

http://book.git-scm.com/4_stashing.html

答案 1 :(得分:2)

是的,你可以这样做,或者代替那个git commit,你也可以做git stash :)然后,一旦你完成了错误修复,你可以通过{{返回你的状态1}}

http://gitready.com/beginner/2009/01/10/stashing-your-changes.html

答案 2 :(得分:1)

关于git的一个很棒的事情是它能够为你提供多种方法来实现目标,让你适应你的工作流程,而不是让你自己的工作流程适应git。

有多种方法可以做到这一点,例如:

存储您的更改,然后切换到错误分支,然后在完成错误修复后应用存储。

在本地提交您的更改,切换到错误分支修复错误,然后使用git rebase -i

修复您的本地提交历史记录

将当前更改提交到新的本地分支,切换到错误分支,修复错误,然后将更改从本地临时分支合并回功能分支。

答案 3 :(得分:0)

git stash 是你的朋友。假设你在bug_fix分支

git stash save "must stop working to fix bug!"
git checkout master
.. do some stuff
git commit -am 'foo'
git checkout bug_fix
git stash pop

请注意,“git stash pop”会恢复隐藏的更改,这是您最需要的时间。如果要在存储中应用更改并将其保存在存储中,请使用git stash apply。如果您想将存储应用于多个分支,这非常有用:

git checkout branch1
git stash apply
git checkout branch2
git stash apply
git checkout branch3
git stash apply