チュートリアル3 変更履歴の統合 競合を解決する

まずはpullを実行して、リモートリポジトリから最新の変更履歴を取得しましょう。

お使いのパソコンの環境を選んでください。

Mac

tutorialでの作業

ツールバーの「プル」ボタンをクリックしてpullを実行します。

tutorialでの作業

次の画面が表示されるので、そのままで「OK」ボタンをクリックします。

tutorialでの作業

マージ中に競合が発生したことを表すダイアログが表示されてしまいました。

tutorialでの作業

sample.txtファイル開いて確認してみます。
Gitが競合の発生した箇所(太字部)に次のような修正を入れています。

サル先生のGitコマンド
add 変更をインデックスに登録する
<<<<<<< HEAD
commit インデックスの状態を記録する
=======
pull リモートリポジトリの内容を取得する
>>>>>>> 17c860612953c0f9d88f313c8dfbf7d858e02e91

ここでは、両方の変更を取り入れることにして、余計なマーカ行は削除します。

サル先生のGitコマンド
add 変更をインデックスに登録する
commit インデックスの状態を記録する
pull リモートリポジトリの内容を取得する

tutorialでの作業

ファイルの内容を変更したのでコミットする必要があります。ファイルをインデックスに追加してから、「コミット」ボタンをクリックしてコミットしてください。

これでリモートリポジトリから最新の変更内容の取り込みが完了しました。

この表示から、二つの変更を統合したことがわかります。

これで、前のページでは拒否されたプッシュができるようになりました。プッシュして確認してみましょう。

Windows

tutorialでの作業

pullを実行するには、tutorialディレクトリを右クリックして、右クリックメニューから「プル」をクリックします。

tutorialでの作業

次の画面が表示されるので、「OK」ボタンをクリックしてください。

tutorialでの作業

自動マージに失敗したというメッセージが表示されてしまいました。「クローズ」ボタンをクリックして画面を閉じてください。

tutorialでの作業

変更を確認するかどうか聞かれるので「Yes」ボタンをクリックしてください。

tutorialでの作業

sample.txtで競合が発生したことがわかります。「OK」ボタンをクリックして画面を閉じてください。

tutorialでの作業

sample.sample.txtファイル開いて確認してみます。
Gitが競合の発生した箇所(太字部)に次のような修正を入れています。

サル先生のGitコマンド
add 変更をインデックスに登録する
<<<<<<< HEAD
commit インデックスの状態を記録する
=======
pull リモートリポジトリの内容を取得する
>>>>>>> 17c860612953c0f9d88f313c8dfbf7d858e02e91

ここでは、両方の変更を取り入れることにして、余計なマーカ行は削除します。

サル先生のGitコマンド
add 変更をインデックスに登録する
commit インデックスの状態を記録する
pull リモートリポジトリの内容を取得する

tutorialでの作業

ファイルの内容を変更したのでコミットする必要があります。右クリックメニューから「コミット」をクリックしてコミットしてください。

これでリモートリポジトリから最新の変更内容の取り込みが完了しました。

この表示から、二つの変更を統合したことがわかります。

これで、前のページでは拒否されたプッシュができるようになりました。プッシュして確認してみましょう。

コンソール

tutorialでの作業

次のコマンドを実行してください。

$ git pull origin master
Username: <メールアドレス>
Password: <パスワード>
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://nulab.backlog.jp/git/BLG/tutorial
* branch master -> FETCH_HEAD
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
Automatic merge failed; fix conflicts and then commit the result.

マージ中に競合が発生したことを表すメッセージが表示されてしまいました。

tutorialでの作業

「Merge conflict in sample.txt」と表示されているのでsample.txtファイル開いて確認してみます。
Gitが自動でマージできなかった部分(太字部)を次のように変更しています。

サル先生のGitコマンド
add 変更をインデックスに登録する
<<<<<<< HEAD
commit インデックスの状態を記録する
=======
pull リモートリポジトリの内容を取得する
>>>>>>> 4c0182374230cd6eaa93b30049ef2386264fe12a

tutorialでの作業

ここでは、両方の変更を取り入れることにして、余計なマーカ行は削除します。

サル先生のGitコマンド
add 変更をインデックスに登録する
commit インデックスの状態を記録する
pull リモートリポジトリの内容を取得する

tutorialでの作業

ファイルの内容を修正し終わったらコミットする必要があるので、コミットします。

$ git add sample.txt
$ git commit -m "マージ"
[master d845b81] マージ

これでリモートリポジトリから最新の変更内容の取り込みが完了しました。

tutorialでの作業

logコマンドで履歴を確認してみましょう。 --graphオプションを指定するとテキストで履歴の流れを表示することができます。--onelineオプションを指定するとコミットの情報を一行で表示します。

$ git log --graph --oneline
* d845b81 マージ
|\
| * 4c01823 pullの説明を追加
* | 95f15c9 commitの説明を追加
|/
* 3da09c1 addの説明を追加
* ac56e47 first commit

この表示から、二つの変更を統合したことがわかります。

これで、前のページでは拒否されたプッシュができるようになりました。プッシュして確認してみましょう。

Dreamweaver CC

tutorialでの作業

ツールバーの「プル」ボタンをクリックしてpullを実行します。

tutorialでの作業

次の画面が表示されるので、そのままで「OK」ボタンをクリックします。

tutorialでの作業

マージ中に競合が発生したことを表すダイアログが表示されてしまいました。

tutorialでの作業

sample.htmlファイル開いて確認してみます。
Gitが競合の発生した箇所に次のような修正を入れています。

ここでは、両方の変更を取り入れることにして、余計なマーカ行は削除します。

tutorialでの作業

ファイルの内容を変更したのでコミットする必要があります。ファイルをインデックスに追加してから、「コミット」ボタンをクリックしてコミットしてください。

これで、前のページでは拒否されたプッシュができるようになりました。プッシュして確認してみましょう。

おつかれさま!これでGitの基本的な使い方の説明は終わりばい!
ブランチとかコミットの修正みたいな、もっと高度な内容を知りたかったら発展編を見らんね!

サルのダイミョー