我一直在研究从master
创建的分支上的项目的功能,目前正在审核合并。我称之为dev
。在此期间,我创建了一个dev
分支,我将其称为branch
。
在审核过程中,发现dev
需要进行一些更改,因此我检查了dev
,进行了更改,并重新推送并推送。
现在,我的branch
副本已与其来源dev
过时了。我该如何更新?通常情况下,我只需要取一个,然后拉一下。当master
发生变化时,执行此操作会导致我的分支机构进行所述更改,从而使我能够及时了解同事的工作。当我尝试在自己的分支机构之间执行此操作时,它会说branch
是最新的,这是不正确的。
我错过了什么?
感谢。
编辑:我最终做了一个改变,正如Max Friederichs所描述的那样。它根据branch
的更改执行我在更新dev
方面指定的内容。我选择Jean Rostan的答案的原因是因为做一个rebase改变了git存储库的工作流历史,但是当Jean建议合并来自分支的新东西并且单独留下工作流历史时 - 这对于你想要什么时候有用看看发生了什么事。
实际上,两种解决方案都会实现相同的目标,只会对工作流程历史产生不同的影响。
答案 0 :(得分:1)
如果它只是本地分支(这是你的情况),首先要进入你想要更新的分支:
git checkout branch
然后合并目标分支的本地更改:
git merge dev
它会将dev
合并到branch
,也就是说更新它。
当您执行拉动时,您将检索上游更改(在远程仓库中);因此,如果远程仓库中的分支branch
未进行任何更改,则不会发现任何更改。
答案 1 :(得分:1)
您需要rebase
branch
...分支,以便它包含您对dev
分支机构所做的最新更改
git checkout branch
git rebase dev
这会暂时搁置您对branch
的更改,应用dev
中缺少的更改,然后将更改重新应用到branch
。此时也需要解决任何冲突。如果先前推送branch
,您将需要强行推送。