ぱそくま ろご
linux > Git > Gitで作業する - リモートリポジトリを使う

リモートリポジトリを使う

リモートリポジトリ

「git clone」で取得元のリポジトリをリモートリポジトリといいます。 このリモートリポジトリにローカルリポジトリの内容を反映したり、最新の情報を取得したりする必要があります。

リモートリポジトリに反映 - git push

「git commit」はステージングの内容をローカルリポジトリーに反映します。複数人で開発を行っている場合は、リモートリポジトリーにローカルリポジトリの中身を反映する必要があります。 それを行うのが「git push <リモートリポジトリのurl> <ローカルのブランチ>[:<リモートのブランチ>]」です。

例:git push

[paso ~] git push http://<url> master
または
[paso ~] git push origin master



git pushの設定

「git push」は引数なしで実行することも可能です。 その時のpushの挙動は「git config --global push.default xxxxx」の設定によって決まります。

git config push.defaultの値
詳細
nothing 誤操作回避用で、何もpushしません。明示的にpush先を指定する必要があります。
current カレントブランチと同じ名前のリモートブランチにpushします。
upstream 現在のカレントブランチの統合先(アップストリーム)にpushします。
simple 現在のブランチの統合先(アップストリーム)にpushします。ただし、ブランチ名が違った場合はpushしません。
matching マッチする全てのブランチをpushします。

リモートリポジトリから最新を取得 - git fetch

複数人で開発している場合は、別の人の修正内容を自分のリポジトリに反映させる必要があります。 それを行うのが「git fetch」です。 (正確には別のリポジトリからオブジェクトとrefsをダウンロードする事です。)

例:git fetch

#リモートリポジトリoriginからデータをダウンロード
[paso ~] git fetch origin
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From http://192.168.1.1/git/dev1

作業ツリーに反映 - git merge

「git fetch」でダウンロードしたリポジトリーの中身を各ブランチに反映させる必要があります。 それを行うのが「get merge」です。

例:git merge

[paso ~] git merge origin/master
Updating e559e60..xxxxxxx #origin/masterのrefのID
Fast-forward
 test.txt |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

実際にはローカルにあるリモートトラッキングブランチをfetchしてきた最新のコミットオブジェクIDに更新し、 それに付随するファイルをblobデータからワークツリーに反映します。

fetchとmergeを同時に - get pull

「git pull」を実行するとfetchとmergeを同時に実行してくれます。基本はこれを使う感じで。