gpt4 book ai didi

git - "git pull"如何从master进入开发分支

转载 作者:IT王子 更新时间:2023-10-29 01:10:49 24 4
gpt4 key购买 nike

我在开发中有一个名为“dmgr2”的分支,我想从主分支(实时站点)中提取并将所有更改 merge 到我的开发分支中。有更好的方法吗?

这是我在提交更改后计划做的事情:

git checkout dmgr2
git pull origin master

这应该将实时更改 pull 入我的开发分支,还是我做错了?

最佳答案

您列出的步骤将起作用,但还有更长的方法可以为您提供更多选择:

git checkout dmgr2      # gets you "on branch dmgr2"
git fetch origin # gets you up to date with origin
git merge origin/master

fetch 命令可以在merge 之前的任何时间执行,也就是说,您可以交换获取和 check out 的顺序,因为fetch 只是转到指定的远程 (origin) 并对其说:“给我所有你有而我没有的东西”,即所有分支上的所有提交。它们被复制到您的存储库,但对于远程上名为 branch 的任何分支,它们都被命名为 origin/branch

此时您可以使用任何查看器(git loggitk 等)来查看您没有的“他们有什么”,反之亦然。有时这仅对温暖的模糊感觉有用(“啊,是的,这实际上是我想要的”),有时它对完全改变策略有用(“哇,我还不想要那些东西”)。

最后,merge 命令获取给定的提交,您可以将其命名为 origin/master,并尽一切努力引入该提交及其祖先,当你运行 merge 时,到你所在的任何分支。您可以插入 --no-ff--ff-only 以防止快进,或者仅在结果为快进时 merge ,如果您愿意.

当你使用序列时:

git checkout dmgr2
git pull origin master

pull 命令指示 git 运行 git fetch,然后相当于 git merge origin/master。所以这与手动执行这两个步骤几乎相同,但存在一些您可能不太关心的细微差异。 (特别是 pull 运行的 fetch 步骤 only origin/master,它不会更新ref 在你的 repo 中:1 任何新的提交最终只被特殊的 FETCH_HEAD 引用引用。)

如果您使用更明确的 git fetch origin(然后可以选择四处查看)然后使用 git merge origin/master 序列,您还可以使用自己的本地 master 与远程同步,只有一个 fetch 在网络上运行:

git fetch origin
git checkout master
git merge --ff-only origin/master
git checkout dmgr2
git merge --no-ff origin/master

例如。


1第二部分在 git 1.8.4 中已经改变——我说“固定的”,它现在机会性地更新“远程分支”引用。 (正如发行说明所说,这是一个故意跳过更新的设计决定,但事实证明更多人更喜欢 git 更新它。如果你想要旧的远程分支 SHA-1,它默认保存在,因此可以从 reflog 中恢复。这也启用了一个新的 git 1.9/2.0 功能,用于查找上游 rebases。)

关于git - "git pull"如何从master进入开发分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20101994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com