0
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 1 year has passed since last update.

【Github】コンフリクトの対処法について

Posted at

はじめに

共同で作業をしているとどこかしらで必ず起きてしまうのがコンフリクト。

コンフリクト(conflict)とは、そもそも「衝突」を意味しています。
そしてGitコンフリクトとは、前述したGitマージしたときに発生する衝突のことで、マージ対象のブランチで同じファイルの同じ箇所で修正を行った時に発生します。

よく起こる事象のようですが、
慣れないうちは結構テンパってしまうと思うのでその不安を少しでも解消すべく記事にまとめていきます。
あと備忘録。

進め方

// mainブランチへ移動する
$ git checkout main
// 最新のmainをPullする
$ git pull origin main
// 作業しているブランチへ移動する
$ git checkout 39-be-webtest-usercourseapi
// マージする
$ git merge main

おそらくこのマージのタイミングでコンフリクトが起こることが多いかと思います。
IDEに戻ってあげるとコンフリクトしているファイル、箇所がわかると思うので移動しましょう。

コンフリクトしているファイルに移動する

片方だけを残したり、上書きしたりとやり方はいくつかあるようですが、
今回やったのは、上書きベースでの修正でした。

mainにあがっているコードに自身の修正を加えていく形ですね。

黄色がかった膜を消してあげる

Gitではコンフリクトしている箇所にかけて、黄色がかった膜のようなものがかかっています。
HEADやmainなどと対象部分をわかりやすく指定してくれているので、
該当の部分を把握しながら黄色がかった膜を消していきます。(HEADとかを消せば消えていく)

修正していく

どの部位に差分があるのか理解した上で、コードをどうしていきたいのか修正していきます。

pintを実行する

これは皆やることではないと思うが、現在のプロジェクトではコードを整形してくれるpintを導入して作業をしている。
コミット前に実装しているのでここでやってあげる。

docker-compose exec app bash
./vendor/bin/pint -v

ステージングにあげる

git add .をして対象ファイルをステージングにあげる。

$ git add .

ステータスも確認してあげて、上がっているか確認する

$ git status

動作確認をする

Seederでデータ投入だったり、テスト実装など実際に作業している内容に沿って動作確認をしてあげる。

コミットする

コミットメッセージなどプロジェクト毎にルールがあればそれに従う

git commit -m "Merge main"

Pushしてあげる

最後にPushしてOK。

$ git push origin 39-be-webtest-usercourseapi

以上。

0
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
0
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?