假设我有两个分支,一个是新功能,另一个是测试。
我想在测试分支中合并新功能。问题是我的本地版本的测试分支没有更新上次更改,我忘记在合并新功能之前更新它。
发生的事情如下:
我认为在推送期间发生了合并,因为现在我的测试分支中有远程更改。
是否可能或发生了其他事情?
我现在的情况是,我不确定测试分支到底有什么。基本上我不知道这个错误涉及到什么。
我不确定我是否理解发生的事情,所以我想请你更好地了解发生的事情以及如何解决这个问题。
答案 0 :(得分:1)
local test
未使用remote test
分支更新时。说,local test
包含提交A
,remote test
包含提交A & B
。
local test: A
remote test: A -> B
合并feature
分支local test
。比如,功能包含提交P
。
local test: A -> P
remote test: A -> B
如果您想推local test
,您应该遇到类似your test branch is behind origin/test
的错误。
将remote test
拉入local test
分支。
$ git pull origin test
local test: A -> B -> P
remote test: A -> B
推送local test
local test: A -> B -> P
remote test: A -> B -> P
答案 1 :(得分:0)
您已在本地new merge
分支中合并test
[在第一个子弹中提到],因此您现在new feature
+ test
分支更改/提交test
分支。
现在当您推送test
分支时,您的远程test
分支也会在new feature
中进行test
+ remote/test
分支更改/提交分支。
答案 2 :(得分:0)
在推送更改之前,您可能执行了git pull origin test
(将测试分支的远程更改集成到您的本地)。如果test
分支上有一些更改,那么你会从git中得到消息:
更新被拒绝,因为遥控器包含您本地没有的作品。这通常是由另一个存储库推送到同一个ref引起的。您可能希望在再次推送之前首先集成远程更改(例如,'git pull ...')。