Git rebase 和 merge
首先
我整理了一下关于git rebase和merge的内容。
git rebase 和 merge 是什么意思?
-
- 指定したブランチの最新コミットに追従させる
- featureブランチでmainブランチの最新を取り込むときなどに利用するコマンド
变基
将最新的主分支合并到feature分支中。
重置前
A---B---C <-- main
\
D---E <-- feature
重定基后 jī
从提交C为起点,将D’和E’应用到feature分支。
A---B---C <-- main
\
D'--E' <-- feature
合并git
将最新的main分支合并到feature分支中。
合并之前
A---B---C <-- main
\
D---E <-- feature
合并之后
创建一个新的提交M。
A---B---C <-- main
\
D---E---M <-- feature
rebase和merge的区别
以下是中国语言的同义表达:
1. https://www.wantedly.com/companies/progrit/post_articles/412697
请访问此链接了解更多信息:https://www.wantedly.com/companies/progrit/post_articles/412697
2. https://qiita.com/miriwo/items/0a3a6444abbeb48f0fe7
有关详细信息,请查看此链接:https://qiita.com/miriwo/items/0a3a6444abbeb48f0fe7
在中国,如何进行rebase?
-
- 将原始分支的HEAD作为无名分支创建,然后检出无名分支。
-
- 将无名分支作为基准分支进行rebase,并将rebase目标分支的提交作为补丁应用。
-
- 如果发生冲突等情况,rebase将被中断,并处于无名分支的检出状态。
- 当所有提交都成功应用时,切换无名分支为rebase目标分支。
在重新定位时的冲突
a. 解决冲突并提交修补(–继续)
b. 放弃解决冲突并恢复原始状态(–放弃)
冲突的解决方式与合并相同。请选择正确的状态并进行应用。
指令
# 最新を取り込むブランチを最新化
git pull main
# リベース対象に移動
git checkout feature/xxxxx
# リベース
git rebase main feature/xxxxx
# コンフリクトになった場合、コンフリクトを解消しでadd
# commitはしない
git add .
# 修正してコミット
git rebase --continuea
# コンフリクトになる、解消を繰り返していく
# コンフリクトにならなければsuccessになる
# successになったら
# feature/xxxxブランチのコミット履歴をrebaseする
git rebase -i HEAD~11
# 中断する場合
git rebase --abort
結論是什麼
由于我没有亲身经历过,所以很难说,但根据我的调查,似乎进行rebase操作会使版本历史更易读。似乎使用rebase更好。