我有这个分支:
当地:
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 <degensharew@myCompany.com>
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 <degensharew@myCompany.com>
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 <degensharew@myCompany.com>
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 :我是唯一一个在这个分支上工作的人。
答案 0 :(得分: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拒绝自动应用此提交。这里的两个解决方案是将您的本地分支合并到远程,或者 rebase 您在遥控器上的本地分支,然后将其推入。
至于为什么你被迫再次拉,这可能有很多原因。例如,如果你做了另一个提交修改,这可以解释它。承诺同一个分支的同事也可以解释它,但不是在你的情况下,因为你说你是唯一一个在这个分支工作的人。