遥控器:原产地
$ git branch
* master
$ git checkout -b "new_feature"
现在我在“new_feature”分支上做了几次提交,并希望在更新后将其推送到 origin 。
$ git branch
master
* new _feature
$ git pull --rebase origin new_feature
$ git push origin new_feature
这是在推送到远程之前更新本地分支的正确方法吗?
答案 0 :(得分:3)
您想要使用
git pull --rebase origin master
arguments to git pull
必须是可选的遥控器,并且该遥控器上的可选refspec或参考/分支 :
git pull [options] [<repository> [<refspec>…]]
new_feature
因为它是本地分支而无法工作,此外,它对rebase
没有意义,因为您想要将修订版传递给rebase
分支new_feature
位于 之上。如果您已new_feature
已签出,则表示您理解/隐含了您想要rebase
的分支,rebase
正常工作的方式
答案 1 :(得分:2)
创建“new_feature”分支后,您将拥有类似
的状态o <master> <origin/master> <new_feature> most recent commit
|
...
然后,在将更改提交到本地分支后,您的存储库将显示为
o <new_feature> your last commit
|
o your first commit
|
o <master> <origin/master> most recent commit
|
...
做一个
git pull --rebase origin master
,正如Cupcake建议的那样,你将以
结束o <new_feature> your last commit
|
o your first commit
|
o <origin/master> something meanwhile commited on remote master
|
o <master> most recent commit
|
...
您的更改在“origin / master”之上重新定位。这些不是您的原始提交,但提交已更改为适合“新”“origin / master”。
执行rebase时,您可能会遇到合并冲突,因为在远程主服务器上进行的更改可能会与您的更改发生冲突。
但是因为“new_feature”现在“在”origin / master“之上”,你可以推送到远程主机。
这也会将标签“origin / master”移动到“new_feature”的级别。如果您还想让您的本地“主人”在轨道上,那么您必须检查它并与“origin / master”合并。