如果一个和乙在相同的git回购工作,一个推上一个特性分支的变化:A-feature
到回购之前乙,乙现在需要之前,他可以做一个拉推。在我推入Git之前,何时需要拉动?
但是这里描述的确切条件在哪里?例如。它是否适用于推到回购站的任何分支上的任何更改?或者只有如果A和B推到同一分支?意思是B可以推到B-feature
即使A刚刚推在他面前A-feature
?
如果一个和乙在相同的git回购工作,一个推上一个特性分支的变化:A-feature
到回购之前乙,乙现在需要之前,他可以做一个拉推。在我推入Git之前,何时需要拉动?
但是这里描述的确切条件在哪里?例如。它是否适用于推到回购站的任何分支上的任何更改?或者只有如果A和B推到同一分支?意思是B可以推到B-feature
即使A刚刚推在他面前A-feature
?
这意味着B可以推到B特征,即使A只是推在他之前的A特征?
是的。你得到的警告是,只有当你是推到别人更新的一个分支:
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
到git pull
唯一的选择将是一个git push --force
(这将覆盖由A
与B
的出版历史,如果B
推动A-feature
,这是不好的。)。
请参阅“git push --force
, behind the scenes”。
如果任何人,但B
正在B-feature
,当B
要推动地方B-feature
分支上游回购不需要拉:推动将是一个快进一个:你是在顶部添加新的提交远程分支。
为什么B在他(或她)可以将他们自己的改变推送到同一分支之前需要拉动A的变化的原因是否则B将会重写历史(取消A的提交以支持他们自己的),而A的提交(不属于B的本地分支)将会丢失。
只有当你推送到同一个分支时,情况才是这样,所以是的,B可以推送到另一个分支,而不必首先提交A的提交。在那种情况下,A和B的提交合并将在稍后进行,当它们的分支合并时。
如果做要推到,即使它包含的是不是在你的本地分支提交远程分支,可以指示混帐不提醒你,反正与推送继续使用git push --force
(或git push -f
)。 但是,要小心,因为在大多数情况下(特别是当你与其他人一起工作时),这样做不可取。不在您本地分支中的提交将从远程分支中删除。
Git中的每个分支都是一个按时间顺序排列的提交。
当你想推送一个不是基于该分支的最新提交的提交时,你需要先提交中间提交(可能涉及手动合并)。
这只是一个问题,当多个用户推到相同的分支。当每个用户分别在个人分支上工作时,他们将永远不必在推动之前拉动。当然,除非他们故意要合并别人的分支。
应该可以在不拉动的情况下推送到不同的分支 – Karussell 2014-12-09 11:55:17