2013-07-09 99 views
2

摘要:
(我是很新的git)
试图像在这里工作描述:http://nvie.com/posts/a-successful-git-branching-model/
但是我似乎错过理解如何有多个分支机构(即主,开发,修复程序)
混帐与gitolite分支,如何从主结帐时在开发

  • 检查出一个第三支时,我将使用“藏匿”(来自主机的修补程序,而在发展)
  • 我怀念做某事工作。使用“推”

详细时:
我已经gitolite一个回购创建:

  • 称为“BE”,这是从原点主
    (1用途:混帐推起源主)
  • 增加了一些文件和他们推
    (GIT添加.; git的承诺-m “BLA”; GIT中推)
  • 然后一个分支来源开发
    (GIT结帐-b开发主)
  • 添加了一些文件并将它们推送
    (...;混帐推起源发展)
  • 现在我想创建“主”早午餐叫hotfix_3.0.1
    (GIT结账-b修复-3.0.1主)

=>我也得到一个问题:

error: Your local changes to the following files would be overwritten by checkout:
....
Please, commit your changes or stash them before you can switch branches.
Aborting

==== 的问题是:
如何建立与两个分支同时工作?
我应该在从主人签出一个新分支之前存储“开发” - 早午餐中的更改吗?

+0

大家好,感谢您的建议。在我看来(抱歉)我忘了提交。 (呃,是的)这3个步骤是需要的:'git add。; git commit -m“bla”; git push' - 就这些。之后我可以根据预期改变分支。所以git的错误信息就是说实话;我的错! – alex

回答

0

一次只能有一个环境处于活动状态。您需要stash(暂时搁置一些工作,稍后检索它)更改或commit,然后再切换到新分支。

如果你确信你的改变,只需提交它们:毕竟它是一个开发分支,据说不稳定(如果你不推动它们,它们保持本地化,你可以恢复提交或挤压它在推动之前有一个底池)

+0

o.k.那么,在我看来,我没有'commit'(commit && push)我的dev-branch正确! (这是一个与gitolite的远程回购设置),如上所述(至少试过)我已经提交并推送了我的dev-brunch; - 是:'git push origin develop' - 不够?但是git不允许我从其他(然后当前)分支创建第3个分支。任何提示,如何正确推送? – alex

0

如果你真的需要同时在两个分支上工作,你可以很好地克隆你的回购两次。
这将避免结帐步骤的任何问题。

如果您在同一回购工作,那么初始推力应该是:

git config push.default simple 
git push -u origin master 
# or 
git push -u origin develop 

请参阅“Why do I need to explicitly push a new branch?”:将设置origin/mastermasterupstream branch,让您只需使用git push为所有后续推动。
使用“simple”推送策略,只会将当前分支推送到该上游分支。