2
在一大群项目这个工作是我们的工作流程:GIT科工作流程
// create branch
git checkout -b mybranch
(do work)
// commit to branch locally
git commit -a
// push to remote
git push origin mybranch
(repeat)
当我们的分支工作完成,我们合并分支到主:
// go to master
git checkout master
// update
git pull master
// merge our branch into master
git merge mybranch
(solve conflicts)
git push
现在我们只重复上述步骤,几天的工作流程就可以完成。现在,突然间,每个人都获得了其他组成员分支和主人的非更新。例如,有人将git拉到主人内部,然后合并,但他们无法推送。它说非快速推进。这很奇怪,因为它说主人是完全保持最新的。
下立即混帐拉后,混帐合并mybranch,混帐推:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:foo/project.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
然而,一个混帐拉说,我们是最新的。
所以问题是,GIT内的一个大集团的预期工作流程是什么?我们应该如何处理分支机制。
谢谢!
为什么重新克隆什么时候可以用git checkout master; git reset --hard origin/master? – chazomaticus 2012-02-25 02:31:31
@chazomaticus我不知道他们的本地存储库做了什么。就我们所知,“起源”意味着两件不同的事情。新的开始是干净而明确的。 – Borealid 2012-02-25 04:54:26
Borealid可能是正确的历史因为例如rebase重写。我只想补充一点,我会将我的分支机构保留在本地,而不是将它们推送到原产地,因为原产地将被大量不必要的'mybranch'垃圾邮件发送,除非mybranch必须与其他人共享,并保留在本地。 – ralphtheninja 2012-02-25 12:32:12