2013-12-12 52 views
2

想象一下,有2个分支:特征。现在我正在研究一个新功能,因此将该分支签出。稍后,我需要在主人上工作,但由于他们尚未处于良好状态,因此无法提交功能更改。我可以把它们放到大师。我在那里做了一些工作,突然间我得到了一个想法,我需要在功能分支中测试,所以我想切换到它,但是我必须再次登录主设备切换分支各有本地变化

现在想象你有10个而不是1个功能分支。是否在切换分支机构时隐藏所有本地更改的唯一方式,还是存在更智能的解决方案?

请不要质疑的工作流程,它只是为了突出恼人工作的expample - 藏匿 - 结账 - 工作 - 藏匿 - 结账 - 申请藏匿 - 工作 - 隐藏 - 收银 - 应用其他隐藏 -...循环。

回答

2

解决方案是办理登机手续。不要在您切换到另一个分支或掌握之前存入任何您在功能分支上的任何内容。留下一个很好的描述性提交消息。您正在考虑集中式源代码管理,即检查未完成或未完成的工作将会给其他人带来问题。但是这是Git - 它是你的本地版本库。您无法通过检入来解决任何问题,也无需将更改推送到原来的位置以检出另一个分支。

+0

你是绝对正确的,因为我只是在本地特定的分支中进行功能开发,所以我对于我不需要的特性工作有了远程分支。 –

2

我不明白你为什么不提前将feature分支上的更改作为“临时提交”提交。您可以随时切回,并执行git reset HEAD^撤销提交并继续工作。我很少使用自己的绦带。

2

,而不是仅仅在本地commiting,你可以正确commiting之前建立新的分支机构,如:

[work] 
$ git checkout -b sub_feature_branch 
$ git commit [...] 

# Now time to switch to other branch 

$ git checkout other_branch 
[work & repeat] 

这样做,不仅是你保持各主流分支(在你的案件主&功能)干净的情况下,你稍后改变主意,但您也可以在适用时推迟合并操作。

+0

谢谢,这让我想起Git更具动态性。只需制作一个本地功能分支即可。 –