LoginSignup
2
2

More than 3 years have passed since last update.

Git リモートとのやりとり 自分用メモ

Posted at

リモートからの情報取得

リモートの表示

git remote

対応するURLを表示
git remote -v
fetch用、push用で2つ出てくる

リモート詳細情報を表示

git remote show <リモート名>
git remote show origin

リモートリポジトリの追加

最初のリモートリポジトリを作るのと同じ動き

リモートリポジトリは複数登録できる

git remote add <リモートリポジトリ名> <リモートリポジトリURL>
このコマンドの本質は、URLにエイリアスをつけること。Gitコマンドの中で、リモートリポジトリ名でURLにアクセスできるようにしているだけ

リモートからの情報取得(フェッチ、プル)

「他人が加えた変更をローカルに持ってくる」という場面

フェッチ("取り出す")

リモートリポジトリからローカルリポジトリに情報を持ってくる
自分の手元(ワークツリー)に持ってくるわけ ではない
ローカルリポジトリ remotes/<リモート名>/<ブランチ名> という場所に保存される

git fetch <リモートリポジトリ名>

例:リモートリポジトリだけに変更を加えるため、GitHubからhome.indexというファイルを追加してみる。
git fetch origin で、リモートリポジトリの情報をローカルリポジトリのremotes/origin/masterに保存する

この時点では、ローカルリポジトリ/masterには何の変更もない。
ただremotes/origin/masterという所定の場所にリモートリポジトリの情報を持ってきただけ。

内容を確認するには、ブランチを切り替える必要がある。
git checkout origin/master
lsしてみると、GitHub上で追加したファイルが表示されている。

いったんローカルリポジトリに戻る(git checkout master
フェッチしてきた情報をワークツリーに、反映させるにはマージ(統合)を行う必要がある

git merge origin/master
「ローカルリポジトリに保存した、originリモートのmasterブランチ情報を、現在いるブランチ(この場合はローカルのmaster)に統合する」
(リモートリポジトリから直接持ってきているわけではなくフェッチによってローカルリポジトリに保存した情報を使うため、
git merge origin masterではなく、git merge origin/masterとなる。)

lsしてみると、GitHub上で追加したファイルがmasterにも反映されている。

フェッチとマージを一気にやりたいときは、プル

git pull <リモート名> <ブランチ名>
git pull origin masterについては、git pullと省略できる

git fetch origin master + git merge origin/master = git pull origin master
= 「指定したリモートリポジトリからローカルリポジトリに情報を持ってきて、現在いるブランチをその情報で上書きする」

???フェッチとプルの使い分け

プルの注意点

ローカルの統合先は、あくまでも現在自分がいるブランチ**(同じ名前のブランチ、とかではない)

慣れるまでは、フェッチ + マージ がよい。

リモート名の変更・削除

変更

git remote <旧リモート名> <新リモート名>
git remote rename tutorial new_tutorial

削除

git remote rm <リモート名> rm => "remove"
リモートリポジトリそのものが削除されるわけではない
(GitHubには表示されている)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2