Git勉強会#3@万葉

  • 今日は n-iwamatu さんが講師でコンフリクト大会!

あなたとコンフリクトしたい

チーム分けしてコンフリクト合戦

チーム分け
  • Red
  • Blue
  • Green
    • green0 ですた.
  • Pink
コンフリクト合戦開始
  • コンフリクトしまくり.そしてバージョン管理できていない
    • 各々が別個に conflict をマージしまくってるのが原因
  • どうすれば?
    • 管理者を立てる
    • 中央にリポジトリを立てる
      • こちらでやっていく.
  • 誰かが中央リポジトリを変更していたため,全員 push 失敗!
    • push -f で強制的にできるが,やってはいけない!
  • 途中のコミットを変更できるが,それを中央リポジトリでやると,pull できない状況になってしまう.
  • rebase と pull と merge の違い
    • 自分のコミットがあって,
      • origin/master に新たなコミットがある場合は,
        • git rebase は,リモートリポジトリ等を基準に,自分のコミットを再構成(re-base)する.
        • git merge は,自分のコミットに,リモートリポジトリのコミットを上乗せする感じ.
        • git pull は原則 merge ベース.ゆとり.--rebase オプションで,rebase する pull になる.
        • pull 禁止!相手の修正のことを考えて,rebase することを心がける
        • 順番が違う.どちらを基準とするかによって,使い分ける.
    • 自分のコミットがないときは,
      • pull で持ってくれば,新しいコミットを,単に持ってくるだけでいいはず.
    • 間違えて pull した場合でも,git rebase すると,rebase した状態にしてくれる.
      • rebase 最強.
    • 中央リポジトリに近いほどマージがOKになる.
      • 取り込む方が merge する感じ.
      • 親がメインになので,親を基本と考えて rebase する.
  • 相手を考えて行動することが重要というか,ちゃんと管理ポリシーを立ててやりましょうねと言うこと.

懇親会

  • とりあえず Poken でハイフォー!
  • いつもの中華屋.値段安くていい感じです.
  • カエルがかわいいらしい.かわいいの基準についてはノーコメント.
  • t-wada さんは,ヘビとかカエルを見るとテンションあがって1時間ぐらい何かに費やすらしい.