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?

    1. 将原始分支的HEAD作为无名分支创建,然后检出无名分支。

 

    1. 将无名分支作为基准分支进行rebase,并将rebase目标分支的提交作为补丁应用。

 

    1. 如果发生冲突等情况,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更好。

广告
将在 10 秒后关闭
bannerAds