Skip to main content

リモートリポジトリから変更を取得する

一般的な Git コマンドを使用して、リモートリポジトリにアクセスできます。

変更を取得するためのオプション

これらのコマンドはリモート リポジトリとやりとりするときに非常に便利です。 clonefetch はリポジトリのリモート URL からローカル コンピューターにリモート コードをダウンロードし、merge は異なる人の作業と自分のものを一緒にマージするために使い、pullfetchmerge を組み合わせたものです。

リポジトリをクローンする

他のユーザーのリポジトリの完全なコピーを取得するには、git clone を次のように使います。

$ git clone https://github.com/USERNAME/REPOSITORY.git
# Clones a repository to your computer

リポジトリをクローンするときに、複数の異なる URL から選びます。 GitHub にログインした状態で、 [Code] をクリックすると、リポジトリのメイン ページでこれらの URL を使用できます。

リポジトリのメイン ページのスクリーンショット。 緑色の [Code] ボタンがオレンジ色の枠線で囲まれています。また、展開されてリポジトリの HTTPS URL が表示されています。

          `git clone` を実行すると、次のアクションが発生します。

* repo という新しいフォルダーが作成される

  • Git リポジトリとして初期化される
  • クローン元の URL を指す origin という名前のリモートが作成される
  • リポジトリのファイルとコミットすべてがそこにダウンロードされる
  • デフォルトブランチをチェックアウトする。

リモート リポジトリの各ブランチ foo について、対応するリモート追跡ブランチ refs/remotes/origin/foo がローカル リポジトリに作成されます。 このようなリモート追跡ブランチの名前は、通常 origin/foo と省略できます。

リモートリポジトリから変更を取得します

他のユーザーが行った新しい作業を取得するには、git fetch を使います。 リポジトリからフェッチすると、すべての新しいリモート追跡ブランチとタグが取得され、かつ、それらの変更は自分のブランチへマージ されません

目的のプロジェクト用にリモート URL が設定されたローカル リポジトリが既にある場合、ターミナルで git fetch *remotename* を使うことで、すべての新しい情報を取得できます。

$ git fetch REMOTE-NAME
# Fetches updates made to a remote repository

それ以外の場合は、常に新しいリモートを追加してからフェッチすることができます。 詳しくは、「リモートリポジトリを管理する」をご覧ください。

ローカルブランチに変更をマージする

マージとは、あなたのローカルでの変更を他のユーザによる変更と結合させる処理です。

通常、リモート追跡ブランチ (リモートリポジトリからフェッチされたブランチ) をローカルのブランチとマージします。

$ git merge REMOTE-NAME/BRANCH-NAME
# Merges updates made online with your local work

リモートリポジトリから変更をプルする

          `git pull` は、`git fetch` と `git merge` の両方を同じコマンドで完了させる便利なショートカットです。
$ git pull REMOTE-NAME BRANCH-NAME
# Grabs online updates and merges them with your local work
          `pull` は、取得された変更のマージを実行するため、`pull` コマンドの実行前にローカルの作業がコミットされていることを確認する必要があります。 
          [マージ コンフリクト](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line)が発生しても解決できない場合、またはマージを中止する場合、`git merge --abort` を使ってブランチをプルする前の状態に戻すことができます。

参考資料

  •         _Pro Git_ ブックの「[Working with Remotes (リモートでの作業)](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes)」
    
  •         [AUTOTITLE](/get-started/using-github/troubleshooting-connectivity-problems)