Thanks to visit codestin.com
Credit goes to docs.github.com

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 にログインした状態で、リポジトリのメイン ページにある [コード] をクリックすると、これらの 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 fetchgit merge の両方を同じコマンドで完了させる便利なショートカットです。

$ git pull REMOTE-NAME BRANCH-NAME
# Grabs online updates and merges them with your local work

pull は、取得された変更のマージを実行するため、pull コマンドの実行前にローカルの作業がコミットされていることを確認する必要があります。 マージ コンフリクトが発生しても解決できない場合、またはマージを中止する場合、git merge --abort を使ってブランチをプルする前の状態に戻すことができます。

参考資料