リモートリポジトリから変更を取得する
一般的な Git コマンドを使用して、リモートリポジトリにアクセスできます。
本記事の内容:
これらのコマンドはリモートリポジトリの操作時に非常に便利です。 clone
および fetch
は、リポジトリのリモート URL からお使いのローカルのコンピュータにリモートコードをダウンロードします。merge
は、他のユーザの作業を自分のものとマージするために使用します。pull
は、fetch
と merge
の組み合わせです。
リポジトリをクローンする
他のユーザのリポジトリの完全なコピーを取得するには、以下のように git clone
を使用します:
$ git clone https://hostname/ユーザ名/REPOSITORY.git
# リポジトリを自分のコンピュータにクローン
リポジトリのクローン時は、複数の異なる URL から選択できます。 GitHubにログインした状態である間は、これらの URL はリポジトリの詳細の下に表示されます:
git clone
を実行すると、以下のアクションが発生します:
repo
と呼ばれる新たなフォルダが作成される- Git リポジトリとして初期化される
- クローン元の URL を指す
origin
という名前のリモートが作成される - リポジトリのファイルとコミットすべてがそこにダウンロードされる
- デフォルトブランチ (通常
master
と呼ばれる) がチェックアウトされる
リモートリポジトリ内の各ブランチの foo
と、対応するリモート追跡ブランチである refs/remotes/origin/foo
がローカルのリポジトリに作成されます。 このようなリモート追跡ブランチの名前は、通常 origin/foo
と省略できます。
リモートリポジトリから変更をフェッチする
git fetch
を使用して、他のユーザによる新たな作業成果を取得できます。 リポジトリからフェッチすると、すべての新しいリモート追跡ブランチとタグが取得され、かつ、それらの変更は自分のブランチへマージされません。
特定のプロジェクト用にリモート URL 付きのローカルリポジトリをすでに設定している場合は、ターミナルで git fetch *remotename*
を使用して新しい情報すべてを取得できます。
$ git fetch remotename# リモートリポジトリへの更新をフェッチする
または、いつでも新しいリモートを追加してその後フェッチすることもできます。
ローカルブランチに変更をマージする
マージとは、あなたのローカルでの変更を他のユーザによる変更と結合させる処理です。
通常、リモート追跡ブランチ (リモートリポジトリからフェッチされたブランチ) をローカルのブランチとマージします。
$ git merge remotename/branchname# オンラインで行われた更新をローカル作業にマージする
リモートリポジトリから変更をプルする
git pull
は、git fetch
と git merge
を 1 つのコマンドで実行できる便利なショートカットです:
$ git pull remotename branchname# オンライン更新をローカル作業にマージ
pull
は、取得された変更のマージを実行するため、pull
コマンドの実行前にローカルの作業がコミットされていることを確認する必要があります。 解決できないマージコンフリクトが発生した場合、あるいはマージを中止したい場合は、git merge --abort
を使用して、プルを行う前の状態にブランチを戻すことができます。