提问人:MartinTTS 提问时间:8/4/2023 最后编辑:phdMartinTTS 更新时间:8/8/2023 访问量:71
Git - 更新较旧的开放功能分支
Git - Update older open feature branch
问:
假期过后,我想继续处理我的未平仓票。在假期之前,我已经开始在本地开发一个功能(“feature/my-new-feature”)。一周后,我的同事们已经将他们的功能合并到主版中。由于我想避免以后的合并冲突,所以我想更新我的功能分支。但是,我不确定使用哪种更新策略。我脑海中闪过两种方法。
1.
git checkout master
git pull
git checkout feature/my-new-feature
git merge master
2.
git pull origin/master
可能这两种策略都有效。这两种方式是否有应考虑的优点和缺点?
答:
1赞
Nurhak Kaya
8/4/2023
#1
以下是我为避免冲突所做的工作;
- 签出并提取最新的 .
master
master
- 签出您的分支,并在需要时提取最新的功能分支。
feature/my-new-feature
- 从分支创建一个新功能分支,将其命名为 .
feature/my-new-feature
feature/merge-from-master-into-my-new-feature-branch
- 使用 IDE 或 Git 工具,合并到 中,并在本地解决冲突。
master
feature/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-branch
feature/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 之上重放我的提交:
- 添加并提交功能分支中的所有内容,
git add ... git commit -m "..."
- 更新本地主服务器,
git checkout master git pull
- 在主节点上重定功能分支的基数
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。这里和这里有很好的解释:pull
fetch
merge
下一个:无法将 refs 推送到远程
评论
master
feature/my-new-feature
master
git rebase master