想象一下有两个分支:主和功能。现在我正在开发一个新功能,因此检查了该分支。稍后我需要处理 master 但不能提交功能更改,因为它们尚未处于良好状态。我可以暂存它们并切换到 master 。我在那里做了一些工作突然间我得到了一个想法,我需要在功能分支中进行测试,所以我想切换到它,但是我必须再次在 master <中进行本地更改/ em>的
现在假设您有10个而不是1个功能分支。它是在切换分支时存储所有本地更改的唯一方法,还是有更智能的解决方案?
请不要质疑工作流程,这只是一个例子来强调讨厌的工作 - 藏匿 - 结帐 - 工作 - 藏匿 - 结帐 - 申请藏匿 - 工作 - 藏匿 - 结帐 - 应用其他藏匿 -...周期。
答案 0 :(得分:2)
我不明白为什么你不能继续将feature
分支上的更改作为临时提交进行提交&#34;。您可以随时切换回来,并执行git reset HEAD^
撤消提交并继续工作。我自己很少使用藏匿处。
答案 1 :(得分:2)
解决方案是办理登机手续。不要藏匿,只需在切换到另一个分支或掌握之前签入功能分支上的任何内容。留下一个很好的描述性提交消息。您正在考虑集中式源代码控制,其中签入不完整或未完成的工作将导致其他人的问题。但这是Git - 它是您的本地存储库副本。您通过办理登机手续给任何人带来了不便,而且您无需将更改推送到原点以结帐另一个分支机构。
答案 2 :(得分:2)
您可以在提交之前创建新的分支,而不仅仅是在本地提交,例如:
[work]
$ git checkout -b sub_feature_branch
$ git commit [...]
# Now time to switch to other branch
$ git checkout other_branch
[work & repeat]
这样做,不仅让你保持每个主流分支(你的情况下的主人和功能)干净,以防你以后改变主意,但你也可以在适用的时候推迟合并操作。