Options for getting changes
これらのコマンドはリモートリポジトリの操作時に非常に便利です。 clone
および fetch
は、リポジトリのリモート URL からお使いのローカルのコンピュータにリモートコードをダウンロードします。merge
は、他のユーザの作業を自分のものとマージするために使用します。pull
は、fetch
と merge
の組み合わせです。
リポジトリをクローンする
他のユーザのリポジトリの完全なコピーを取得するには、以下のように git clone
を使用します:
$ git clone https://hostname/ユーザ名/REPOSITORY.git
# リポジトリを自分のコンピュータにクローン
リポジトリのクローン時は、複数の異なる URL から選択できます。 GitHubにログインした状態である間は、これらの URL はリポジトリの詳細の下に表示されます:
git clone
を実行すると、以下のアクションが発生します:
repo
と呼ばれる新たなフォルダが作成される- Git リポジトリとして初期化される
- クローン元の URL を指す
origin
という名前のリモートが作成される - リポジトリのファイルとコミットすべてがそこにダウンロードされる
- デフォルトブランチがチェックアウトされる
リモートリポジトリ内の各ブランチの foo
と、対応するリモート追跡ブランチである refs/remotes/origin/foo
がローカルのリポジトリに作成されます。 このようなリモート追跡ブランチの名前は、通常 origin/foo
と省略できます。
リモートリポジトリから変更をフェッチする
git fetch
を使用して、他のユーザによる新たな作業成果を取得できます。 リポジトリからフェッチすると、すべての新しいリモート追跡ブランチとタグが取得され、かつ、それらの変更は自分のブランチへマージされません。
If you already have a local repository with a remote URL set up for the desired project, you can grab all the new information by using git fetch *remotename*
in the terminal:
$ git fetch remotename
# リモートリポジトリへの更新をフェッチする
Otherwise, you can always add a new remote and then fetch. 詳しい情� �については「リモートリポジトリの管理」を参照してく� さい。
ローカルブランチに変更をマージする
マージとは、あなたのローカルでの変更を他のユーザによる変更と結合させる処理です。
通常、リモート追跡ブランチ (リモートリポジトリからフェッチされたブランチ) をローカルのブランチとマージします。
$ git merge remotename/branchname
# オンラインで行われた更新をローカル作業にマージする
リモートリポジトリから変更をプルする
git pull
は、git fetch
と git merge
を 1 つのコマンドで実行できる便利なショートカットです:
$ git pull remotename branchname
# オンライン更新をローカル作業にマージ
pull
は、取得された変更のマージを実行するため、pull
コマンドの実行前にローカルの作業がコミットされていることを確認する必要があります。 解決できないマージコンフリクトが発生した� �合、あるいはマージを中止したい� �合は、git merge --abort
を使用して、プルを行う前の状態にブランチを戻すことができます。