Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ビジュアルでわかる最初のGit (第二部)

ビジュアルでわかる最初のGit (第二部)

【オンライン】Git/GitHubをもっと知りたい!いまさら聞けない実用セミナー

https://algyan.connpass.com/event/208747/

解説動画があります: https://www.youtube.com/watch?v=bQl_R513IYw

Gitを、論理的な視点から捉えた良書はたくさんあります。なので、今回は別の切り口、「視覚的に捉える」という方法で解説を試みたいと思います。

第二部は、マージについての解説です。

Kouji Matsui

May 08, 2021
Tweet

More Decks by Kouji Matsui

Other Decks in Programming

Transcript

  1. (c) 2021 Kouji Matsui (c) 2021 Kouji Matsui Agenda ファイルを保存したい

    変更の蓄積をどうやってやる? 歴史の改ざんと並行世界 ラベルの正体 みんなで開発をやりたい 第二部: マージの真実
  2. (c) 2021 Kouji Matsui マージの真実 マージの種類: ◦ 通常のマージ: マージ時に新たなコミットが発生(最初の例)。 マージコミットには、親コミットIDが2つ記録される。

    ◦ ファーストフォワード: ブランチが移動しただけ(可能な場合)。 マージコミットは作られない。 マージ計算が行われないので、非常に高速。 Gitのブランチは、ラベルによる「ツリーの様」を表していて、 分岐構造を識別するものではない(再掲) ◦ ファーストフォワードの結果も、分岐とマージの一種。
  3. (c) 2021 Kouji Matsui マージの真実 リベース (git rebase main devel):

    .git “main” “devel” 差分 同じような修正をちまちまと手で やらなくても、勝手にやってくれる
  4. (c) 2021 Kouji Matsui マージの真実 マージ競合の修正で苦労する… ◦ マージしたときに競合が発生しないような修正の仕方にする。 ◦ 共同作業(後述)するときに、事前に打ち合わせして、近しいところ

    を同時に修正しないようにする。 Gitを使っても、銀の弾丸は無いので、生き延びるには戦術・ 戦略が必要です。 但し、Gitはそういう工夫が非常にやりやすいです。
  5. (c) 2021 Kouji Matsui マージの真実 pushしてfetchされるまでは?: .git “devel” “main” “main”

    setuのローカルは ここを指している? 別の人には自動的に 伝達しない