反映已经推送到本地分支的更改的正确方法

时间:2019-10-23 06:50:29

标签: git

假设我有两个git分支developfeature

功能分支从开发分支出来。

进行更改后,这些更改将基于develop并最终被推送到遥控器。

当某个开发人员将我/她的更改直接推送到远程(develop)之前,即将我的本地基础开发分支推送到远程,什么是正确(推荐)的方式将已推送的更改反映到我的本地分支,然后推?

例如
 1.检出develop到本地
 2.创建分支feature并进行两次提交commit-Ccommit-D
 3.将提交重新部署到develop上,并即将推送到远程

 develop(remote)  commit-A -> commit-B -> commit-X
 develop(local)  commit-A -> commit-B -> commit-C -> commit-D
 feature(local)  commit-A -> commit-B -> commit-C -> commit-D

2 个答案:

答案 0 :(得分:2)

如果我了解您要寻找的内容,那么您想要进入一种看起来像这样的状态:

develop(local)  commit-A -> commit-B -> Commit-X -> commit-C -> commit-D

在本地git pull --rebase上,您应该可以使用develop来实现这一目标。

答案 1 :(得分:2)

您的推送将失败,因为commit-X阻止了远程开发分支上的快进。因此,没有覆盖远程提交的风险(除非您使用-f--force

如果推送失败,您可以简单地重新设置基准:

git rebase origin/develop

或者如果您当地的分支机构也正在开发:

git pull --rebase