2013年2月27日水曜日

衝突を恐れない/考えない git merge

正直ちゃんとできているのかわからない('A`)

git (もちろんコンソールから)いじっている際, gitpushが ![reject]されたときの一連の流れの覚書
メモメモφ(・ω・ )

Git の 「! [rejection] 」への対処法


※あくまで自動マージで対処できる程度の衝突の際の流れです.
※本物の git初心者向けです. 

とりあえず commitしたものをあげましょう. 最初はmasterと緑なmasterですが…
git push
すると突如発生する ! [reject] から始まるエラー報告. どうやら他からも変更来てるよーってことらしい. ここで慌てると平気で1日つぶすようなパニックに見舞われます. 落ち着くことが大事です. まだここはこわくなーい.

Gitには幸い 自動マージ なるものがあり, 簡単な衝突なら自動でマージしてくれます.
まずはマージの準備
git fetch
だいぶ前にわからないと投げたコマンドを使う衝撃たるや('A`)
コイツはリモートの状態を, 別の作業用ブランチに持ってきてくれるコマンドだったらしい. すなわち先ほどの「他からのコード」をとりあえず別の場所に貰ってきてくれるらしい.
この時点で自分の書いてたコードと, fetchが持ってきてくれたブランチの2種類が存在する.
ここが一番混乱する…(・д・`)
ちなみに実行するとmasterと黄色くなっているかと.
git merge orign/master
これで 自分の書いていたコードのほうに, 持ってきたものを自動マージしてくれる. 問題はここで自動マージできていなかったとき. ファイルに差分を挿入してくれるらしいので, どれがぶつかったか確認して直しちゃいましょう. …改行コードの統一とかができていないとこれがとんでもない地獄になりますΣ(||゚Д゚)ヒィィィィ
マージが全て完了したら, おそらくmasterと緑に戻るかと.
もう一度
git push
すると今度はいってくれるはず.


…人数多いとマージ中とかに pushされるのよね…('A`)オマイラ…



0 件のコメント:

コメントを投稿

AWS CDKで立てたEC2インスタンスのTimeZoneとかいじりたかった話

EC2を立てることはできたけど、立てたインスタンスは UTCのままだし設定ファイルとかいちいちscpしてくるのはダルい。 当初UserDataでなんとかしようとしたものの、「書く量がヤバいしメンテしにくい」と悩んでいたところ見かけたのが  AWS::CloudFormation:...