ローカルでコミット、プッシュできれば、後はリモートからデータの取得(プル)だけになります。
また、Gitにはダウンロードしたファイルの差分を補う機能があり、万が一同じ場所を編集しても競合していることを知らせてくれます。この場合は手動でいずれかのコードを統合(マージ)する必要があります。
- リモートのファイルを変更
- ローカルでデータをプル(競合なし)
- ローカルでデータをプル・マージ(競合あり)
このような流れで進めていきます。さっそくはじめましょう!
はじめに
今回使うGitの専門用語を表にまとめました。用語と意味を覚えて読み進めてください。
用語 | 読み方 | 意味 |
---|---|---|
pull | プル | データをダウンロード |
merge | マージ | データを統合 |
Gitのインストールが終わっていない場合は、こちらの記事を参考にしてください。
今回はGUIでの操作となります。視覚的に見える形で進められるTortoise Gitがおすすめです。
ローカルリポジトリ側
分かりやすいようにリポジトリを2つ用意します。一つをリポジトリA、もう一つをリポジトリBとします。作り方はこちらの記事をご覧ください。
前回の内容はこちらの記事をご覧ください。
データを変更
リポジトリBのデータには「任意でここに追加します」と追記します。最終的にプルするので「プル1回目」と入力し、コミットします。
サンプル用のデータです。任意でここに追加します。
プッシュ後、念のためリモートリポジトリの内容を確認しましょう。

ローカルリポジトリ側(競合なし)
データをプル
編集していない最初のリポジトリに戻ります。これをリポジトリAとします。フォルダを右クリックし「TortoiseGit」を選択。

つづいて「プル」を選択。

ダイアログのリモートは「origin」、リモートブランチは「master」であることを確認します。その他のオプションは変更せず「OK」をクリック。

青色で成功と表示されたら完了です。data.txtを開きBと同じ内容であればOKです。
サンプル用のデータです。任意でここに追加します。
ローカルリポジトリ側(競合あり)
同じ箇所を編集していた場合の対処方法をご紹介します。データを統合するこの作業をマージといいます。同じファイル内であっても同じ箇所を編集していなければ競合は起きません。
データを変更
リポジトリAのテキストを「サンプル用のデータ」から「サンプル用のテキスト」に変更します。
サンプル用のテキストです。任意でここに追加します。
「テキスト変更A」のメッセージでコミットします。プッシュはしなくて大丈夫です。

リポジトリBのテキストを「サンプル用のデータ」から「サンプル用のファイル」に変更します。
サンプル用のファイルです。任意でここに追加します。
「テキスト変更B」のメッセージでコミットします。こちらはプッシュしてください。

念のためリモートリポジトリの内容を確認しましょう。

データをプル
データをプルすると競合している旨のダイアログが表示されます。

同じようにエラー表示されているダイアログを閉じます。

リポジトリAのファイルを開くと以下のような表記が追加されます。=======より上がローカル、=======より下がリモートの内容となります。
<<<<<<< HEAD サンプル用のテキストです。任意でここに追加します。 ======= サンプル用のファイルです。任意でここに追加します。 >>>>>>> p8ifpg2mnwautfvnbkseepfv5gxyjw9t6k76ev9e
どちらかを選んで追加したいテキストだけに編集し直します。
サンプル用のテキストです。任意でここに追加します。
コミットしようとすると以下のようなダイアログが表示されます。OKで閉じます。

既にメッセージが入力されていますが、変更して問題ありません。「テキスト競合解消A」とします。

今回は削除した行が2行になっていますね。チェックを入れてコミットしましょう。

最後にプッシュし、リモートリポジトリの内容を確認してください。

リモートからのデータを競合あり、なしとに分けて取得しました。今回はプルしたときにエラーが出ましたが、同じことがプッシュでも起こります。ただし表記などは追加されず、単純にプッシュできない状態となります。
その際はリモートからプルした上で競合を解消し、コミット、プッシュすることでアップできるようになります。手順を踏んだにもかかわらずプッシュできないときは試してみてください。