83808


`develop`ブランチに`main`ブランチを取り込む方法はいくつかあると思うのですが、おすすめの方法を教えてください。

正解があるのであればそれを教えてほしいです。

自分が思いつくのはこんな感じです。パターン①がいいと思っています。

## パターン①(pushを先にする)

[code]

    git checkout develop
    ~プログラミング~
    git add .
    git commit -m "commit"
    git push
    git merge main
    ~conflict修正~
    git add .
    git commit -m "commit"
    git push
    
[/code]

## パターン②(mergeを先にする)

[code]

    git checkout develop
    ~プログラミング~
    git add .
    git commit -m "commit"
    git merge main
    ~conflict修正~
    git add .
    git commit -m "commit"
    git push
    
[/code]

## パターン③(pullでmergeをする)

[code]

    git checkout develop
    ~プログラミング~
    git add .
    git commit -m "commit"
    git push
    git pull main develop
    ~conflict修正~
    git add .
    git commit -m "commit"
    git push
    
[/code]


CC BY-SA 4.0
2021-11-25T10:37:14.967
83804
2021-11-26T02:30:17.293
2021-11-25T10:59:21.577
40856
40856
question
git
developブランチにmainブランチを取り込む方法/順番


gitの作業においてはいろんな方法がありますが、  
重要なことは「どういったコミットができるか」が最も大事です。

つまりは正解かどうかは作業の「方法」ではなくて作業の「結果」が大事です。

その視点で考えると実は３つのやり方どれでもいいということになります。  
なぜなら出来上がるコミットがすべて一緒だからです。以下になるでしょう。

（前のコミット）→ 作業コミット(コメント commit) → マージコミット

１でも２でも３でもどっちでも出来上がるコミット内容は変わらないと思います。

じゃあ方法として何が良いかは、正解はないのでご自身で合わせて作業すればよいと思います。

それを踏まえて３つの作業のレビューをしてみると、  
いかに作業しやすいか、いかに安全に作業できているか？というポイントになりそうです。

例えば  
１の作業は途中でpushしているので仮にローカルが途中で失われてもリモートから復帰できる安全といえますが、すでにマージの作業が必要であると理解しているならばpushする前にマージ作業したほうが効率はよいでしょう。

ちなみにpullというコマンドは中身としては「fetch+merge」とほぼ一緒です。  
マージするべき履歴の内容を理解しているのであればpullで履歴を確認せずに一気にマージしてもよいですし、きちんと履歴を確認して作業するのであれば「fetch+merge」で作業したほうがいいかなと思います。

どちらにせよご自身の作業状況や何を重要にするかによって、作業方法をいろいろ試してみるとよいと思います。


CC BY-SA 4.0
2021-11-26T02:30:17.293
83808
2021-11-26T02:30:17.293
22665
83804
answer