2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

git ~コンフリクト が起こる前、起こった後~

Posted at

はじめに

プログラミングバイトをしていて、自分の作業スピードが早くないのは技術不足という要因もあるが、gitの扱いに慣れていない、知識が十分にないという要因もあるということに気づいたのでgitに関するアウトプットを増やしていく。
今回の記事はバイト先で『この前出してもらったマージリクエストコンフリクト 起こしてるよ』と言われることに恐怖を覚えている人向けになっている。バイト先ではgitlabを使用しているのでプルリクエストのことをマージリクエストと呼ぶ。
コンフリクト を起こしてしまうと、業務の予定がくるってしまうのでできるだけ起こしたくない。今回の記事ではコンフリクト を起こさないための対策とコンフリクト が起こってしまった際の対処についてまとめる。
なお、コンフリクト を起こさないための対策に関しては自分も実践したことがなく、以下のサイトを参考にまとめた。
コンフリクト させないための覚書

コンフリクト とは?

コンフリクト はファイルの同じ箇所を編集したためにマージすることが出来なくなってしまう現象のことである。タイミングとしては一通りの作業を終え、マージリクエストを投げた際に起こる。

コンフリクト を起こさないためには

現在作業している作業ブランチをworking_branchとして、統合ブランチをkitchenブランチとする。
自分の作業用ブランチを切った後に統合ブランチkitchenが更新されているとマージリクエストを出す際にコンフリクト が起こってしまう可能性がある。(自分と同じ部分を編集したブランチがマージされているかもしれないため)コンフリクト を防止するための手順を示す。

作業内容をコミットする

git status

自分の作業状況の確認。

git add -p

addする。pオプションは差分を確認しながらaddすることができるのでお勧め。

git commit -m "コミットメッセージ"

コミット。

ローカルの統合ブランチkitchenを最新の状態にする

git checkout kitchen

kitchenにブランチ切り替え。

git pull

プルして最新の状態に。

git checkout working_branch

作業ブランチにチェックアウト

git merge kitchen

最新のkitchenを作業ブランチにマージ。

このタイミングでコンフリクト が起こる可能性がある。これをローカルで解消する。結局コンフリクト が起こるなら一緒じゃないかと思う人もいるかもしれないが、コンフリクト が起こるかもしれないという気持ちで投げるマージリクエストと、コンフリクト が起こらないことがわかって投げるマージリクエストでは次の業務に取り組む心持が変わってくると思う。
ここで注意しておきたいのが入力側の内容も取り込んでおかないとマージリクエストを出すときまたコンフリクト が起こってしまうので注意。

コンフリクト が起こってしまったときの対処

先ほどまではマージリクエストを投げたときにコンフリクト を出さないための対策についてまとめていたが、それでもコンフリクト が起こってしまう可能性はあると思う。ここではコンフリクト が起こってしまったときの対処について述べる。

マージリクエストを投げたらコンフリクト が発生したことを知らせる表示が出てしまった!!
スクリーンショット 2020-12-04 11.06.05.png

このときの対処をまとめる。

ローカルのkitchenを最新にする

git checkout kitchen 

git pull

git checkout working_branch

作業ブランチにマージする

git merge kitchen 

ここでコンフリクト した部分がエディタに反映されるので適切にコンフリクト を解消する

addする←gitにコンフリクト を解消したことを知らせる

git add コンフリクトを解消したファイル 

commit,pushする

git commit 
git push origin 作業ブランチ

これで問題なければコンフリクト解消できると思う。

さいごに

コンフリクト を起こさないための対策は自分自身も業務内で実践してなんらかの知見を得ることが出来たらまた追記しようと思う。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?