2015-10-15 53 views
1

我有这个分支:Git会询问我拉,每次我要推到我自己的分支

地方:

bugfix/VMS-172-back-arrow-on-activity-bar 

远程:

origin/bugfix/VMS-172-back-arrow-on-activity-bar 

所以我添加本地我的变化然后推它。

然后我再次在本地做了一些改动,我推了它(我在提交时使用git commit --amend)。但是这次git让我在推之前拉。为什么?

我的git的日志:

commit f38a4d8828a2fadec3c62c08cc1c90ea66a719bd 
Merge: 172968f 642178d 
Author: degensharew <[email protected]> 
Date: Thu Oct 15 09:45:59 2015 +0300 

    Merge branch 'bugfix/VMS-172-back-arrow-on-activity-bar' 
    of myrepository into bugfix/VMS-172-back-arrow-on-activity-bar 

    Conflicts: 
     vms-mobile/app/src/main/java/AbstractActivity.java 

commit 172968f6dcf533e43749986eba95a008c585bbb1 
Author: degensharew <[email protected]> 
Date: Wed Oct 14 17:21:01 2015 +0300 

    Fixed bug VMS-172. 
    Avoided rounded corner style from search view. 
    Style back arrow and title of action bar view. 
    Disabled 'back action' from activity title. 

commit 642178d27bccbe9ea48c7d8ae123f1c8c01f921f 
Author: degensharew <[email protected]> 
Date: Wed Oct 14 17:21:01 2015 +0300 

    Fixed bug VMS-172. 
    Avoided rounded corner style from search view. 
    Style back arrow and title of action bar view. 
    Disabled 'back action' from activity title. 

NB:我是唯一一个在这个分支上工作。

回答

2

我在提交时使用了git commit --amend)。但是这次git要求我在推送前拉。为什么?

当您使用git commit --amend时,您重写了本地分支中HEAD提交的历史记录。这意味着在这一点上,您的本地和远程分支机构彼此分离。

前提交修改:

remote: A <- B <- C 
local: A <- B <- C 

提交修改后:

remote: A <- B <- C 
local: A <- B <- C'  (the apostrophe indicates a new commit) 

不能快进,因为你的本地分支远程分支已经从远程分歧。实际上,你的最新提交位于不同于远程的基础之上,Git拒绝自动应用此提交。这里的两种解决方案将是合并当地的分支机构到远程,或衍合遥控器上当地的分支,然后将其推入。

至于为什么你被迫再次,这个拉可能是由于许多原因。例如,如果你做了另一个提交修改,这可以解释它。一位同事向同一个分支承诺也可以解释它,但不是你的情况,因为你说你是唯一一个在这个分支工作的人。

+0

谢谢,干净的答案。 – dsharew

相关问题