Git分支与gitolite,如何在开发时从主人结账

时间:2013-07-09 11:13:50

标签: git gitolite

摘要:
(我对git很新;)
试图像这里描述的那样工作:http://nvie.com/posts/a-successful-git-branching-model/
但我似乎很想知道如何使用几个分支(即master,develop,hotfix)

  • 我在查看第3个分支时使用“stash”(来自master的修补程序,在开发中)
  • 我想念......使用“推”时

详细信息:
我用gitolite创建了一个回购:

  • 称为“BE”,来自原点大师
    (第一次使用:git push origin master)
  • 添加了一些文件并推送它们(git add .; git commit -m“bla”; git push)
  • 然后分支来源开发
    (git checkout -b develop master)
  • 添加了一些文件并推送它们(...; git push origin develop)
  • 现在我想从“master”创建一个名为hotfix_3.0.1的早午餐(git checkout -b hotfix-3.0.1 master)

=>我遇到了一个问题:

  

错误:您对以下文件的本地更改将被覆盖   通过结帐:
....请,提交您的更改或藏匿   他们可以切换分支。
中止

==== 问题是:
如何与两个分支同时建立工作?
我应该将我的变化藏匿在“开发” - 早午餐,然后从主人那里检查一个新的分支吗?

2 个答案:

答案 0 :(得分:0)

一次只能激活一个环境。在切换到新分支之前,您需要stash(保留一些临时工作,以便稍后检索)您的更改或commit

如果你非常确定你的更改,只需提交它们:毕竟,它是一个dev分支,并且据说是不稳定的(如果你不推动它们,它们保持在本地,你可以恢复提交或用它来压缩它推动之前的一个转折)

答案 1 :(得分: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/master设置为master upstream branch ,让您只使用git push所有随后的推动。
使用“simple”推送策略,只会将当前分支推送到该上游分支。