master (fetch first)上記のエラーが発生するのは、ローカルリポジトリが古いためだ。リモートリポジトリはgit-ninjaでpushした内容が反映済のため、ローカルリポジトリより新しい状況にある。プルをして最新のファイルを取得しよう。 そうすると以下のエラーが発生する。Auto-merging katon-method.txtCONFLICT (content): Merge conflict in katon-method.txtAutomatic merge failed; fix conflicts and then commit the result.上記エラーを解消して、リモートリポジトリにプッシュして欲しい。※この問題はWindows環境のgit bashを基準に作成しております。環境によっては動作しない可能性があります。 ">

問題

2
Git

コンフリクトを解消しよう

Gitの問題に挑戦しよう!

問題

コンフリクトを解消しよう

コンフリクト(競合)を解消しよう!

コンフリクトとは、同じソースコードの同じ箇所に対して修正を行うことだ。
修正行が異なれば、gitが自動的に判断してマージしてくれるが、
同じ行に対しての修正の場合、gitは判断できないため、
開発者に判断を委ねるのだ。ソースコードを自分の目で見て、
修正を行う必要がある。

コンフリクトを発生させるために、前回同様、分身の術で対応することとする。
分身の術については「その7:リモートリポジトリからプルしよう」を参照してほしい。

まず、git-ninjaの中にあるkaton-method.txtを開き、
中身を"karyokusaidai-oilplus"へ変更しよう。
修正完了後、コミットして、リモートへプッシュして欲しい。

次に、git-ninja2の中にあるkaton-method.txtを開き、
中身を"karyokusaidai-gasplus"へ変更しよう。
修正完了後、同様にコミットして、リモートへプッシュ使用とすると
エラーが発生するはずだ。
! [rejected] master -> master (fetch first)

上記のエラーが発生するのは、ローカルリポジトリが古いためだ。
リモートリポジトリはgit-ninjaでpushした内容が反映済のため、
ローカルリポジトリより新しい状況にある。
プルをして最新のファイルを取得しよう。 そうすると以下のエラーが発生する。

Auto-merging katon-method.txt
CONFLICT (content): Merge conflict in katon-method.txt
Automatic merge failed; fix conflicts and then commit the result.

上記エラーを解消して、リモートリポジトリにプッシュして欲しい。

※この問題はWindows環境のgit bashを基準に作成しております。環境によっては動作しない可能性があります。

期待する画面

                                Username for 'https://github.com': [メールアドレス]
Enumerating objects: 8, done.
Counting objects: 100% (8/8), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 430 bytes | 215.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
To https://github.com/[ユーザー名]/git-ninja.git
4d0b0cc..8c46db7 master -> master
¥Command¥
                            

解答と解説(コンフリクトを解消しよう)

解説

LINE登録して解答を見る

※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます

コンフリクトを解消できただろうか。コンフリクトが発生したファイルの中身を見ると以下のようになっている。

$ cat katon-method.txt
<<<<<<< HEAD
karyokusaidai-gasplus
=======
karyokusaidai-oilplus
>>>>>>> 4d0b0cc794b887b1f95dff22d8a1654249035c54

上段がgit-ninja2で修正した内容、下段はgit-ninjaで修正した内容だ。 どちらが本来残すべきロジックなのかを開発者同士、相談の上、ファイルを修正してコミットすることが重要だ。 くれぐれも、このままコミットしてpushしてしまうことはないように気をつけてくれ。

さらにスキルアップしたい方は公式LINEから「Git」と送信すると動画が見れます。

LINE登録して動画を視聴する
あなたに合った学習プランは?LINE適正コース診断はこちら