チュートリアル3 変更履歴の統合 競合を解決する
まずはpullを実行して、リモートリポジトリから最新の変更履歴を取得しましょう。
お使いのパソコンの環境を選んでください。
コンソール
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
この表示から、二つの変更を統合したことがわかります。
これで、前のページでは拒否されたプッシュができるようになりました。プッシュして確認してみましょう。
おつかれさま!これでGitの基本的な使い方の説明は終わりばい!
ブランチとかコミットの修正みたいな、もっと高度な内容を知りたかったら発展編を見らんね!