Git - 更新较旧的开放功能分支

Git - Update older open feature branch

提问人:MartinTTS 提问时间:8/4/2023 最后编辑:phdMartinTTS 更新时间:8/8/2023 访问量:71

问:

假期过后,我想继续处理我的未平仓票。在假期之前,我已经开始在本地开发一个功能(“feature/my-new-feature”)。一周后,我的同事们已经将他们的功能合并到主版中。由于我想避免以后的合并冲突,所以我想更新我的功能分支。但是,我不确定使用哪种更新策略。我脑海中闪过两种方法。

1.

git checkout master
git pull
git checkout feature/my-new-feature
git merge master

2.

git pull origin/master

可能这两种策略都有效。这两种方式是否有应考虑的优点和缺点?

git git-pull

评论

2赞 evolutionxbox 8/4/2023
这两种策略都不会更新或更新masterfeature/my-new-featuremaster
3赞 Marvin 8/4/2023
git rebase master
1赞 evolutionxbox 8/4/2023
变基工作,但也可以检出主站、拉取主站、检出分支、将主站合并到分支中。
1赞 MartinTTS 8/4/2023
@evolutionxbox 你是对的。结帐后我忘了拉到主人。我编辑了我的问题。谢谢你提示我
2赞 evolutionxbox 8/4/2023
@MartinTTS是的。否则,您将重新定位到旧版本的 master

答:

1赞 Nurhak Kaya 8/4/2023 #1

以下是我为避免冲突所做的工作;

  • 签出并提取最新的 .mastermaster
  • 签出您的分支,并在需要时提取最新的功能分支。feature/my-new-feature
  • 从分支创建一个新功能分支,将其命名为 .feature/my-new-featurefeature/merge-from-master-into-my-new-feature-branch
  • 使用 IDE 或 Git 工具,合并到 中,并在本地解决冲突。masterfeature/merge-from-master-into-my-new-feature-branch
  • 一切准备就绪后,提交并推送您的更改。feature/merge-from-master-into-my-new-feature-branch
  • 创建一个从 your 到 your 的 PR。feature/merge-from-master-into-my-new-feature-branchfeature/my-new-feature
  • 查看 PR,批准它并删除它,因为您不再需要它。feature/merge-from-master-into-my-new-feature-branch
  • 签出并提取最新更改。feature/my-new-feature
  • 此时,您的分支中已经拥有了所有最新的主更改,您可以继续处理您的更改。feature/my-new-feature
3赞 Roman Pavelka 8/5/2023 #2

我通常在 master 上变基,即在 master 之上重放我的提交:

  1. 添加并提交功能分支中的所有内容,
    git add ...
    git commit -m "..."
    
  2. 更新本地主服务器,
    git checkout master
    git pull
    
  3. 在主节点上重定功能分支的基数
    git checkout feature/my-new-feature
    git rebase master
    

您在 1.正在更新您的主节点并将其合并到您的分支。这完全没有错,但它可以通过合并提交创建混乱的历史记录。您可以在此处阅读有关差异的信息,例如:https://blog.git-init.com/differences-between-git-merge-and-rebase-and-why-you-should-care/

你的 2.正在更新您的远程跟踪分支并将其合并到您的分支中( does 和 )。它完全符合您的要求:远程获取状态并将其集成到您的分支机构。但这不是您通常想要的:也更新 master 和 origin/master。这里和这里有很好的解释:pullfetchmerge

https://stackoverflow.com/a/18137512/12118546

https://stackoverflow.com/a/8690791/12118546