Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【git】fetchについてまとめておく

もらったメモにここで「git fetch origin hoge」をしてねと書いてあったがfetchって何?状態なので調べた

www.yunabe.jp


このページがとてつもなく分かりやすかった
自分みたいなアフォにわかるような文章を書いてくれて助かります・・・・


git remote

で、登録されているリモートリポジトリが一覧になる

詳細が知りたいときは

git remote show [リモートリポジトリ名]

おそらく .git/configに書いてある情報と同じだと思う

fetchはリモートリポジトリから最新情報をローカルリポジトリに持ってくるコマンド
ワーキングツリーには反映されないので、現在編集中のファイルが変更されることはない
ここがおそらくgit pullした場合との一番の違いか
ここで、修正したログがどういう風に扱われるのかが少しわからない・・・

リモートリポジトリなので、そもそも手元のmasterとはまったく別のbranchとしてgit fetchは落としてくる(これが一番の違い)
リモートリポジトリを手元に落としてきたあとで、git mergeまでやってコンフリクトが起こる可能性があるのがgit pull
な〜るほど〜〜〜

git のコンフリクトとか恐ろしくて手をつけたくないわ・・・

git fecth
git fecth [リモートリポジトリ名]
git fecth [リモートリポジトリ名] [branch名]

という使い方がある

git fetch --all

ですべてのリモートブランチをfetchする


https://www.tumblr.com/gmomedia-engineer/110492395034/git-pull-and-fetch-merge
tech.gmo-media.jp

実は git pull はC言語で実装されていません。git-pull.shというシェルスクリプトです。

へぇ〜

結論

git pullに、何も引数を付けずに実行した場合、git fetchしてgit mergeするのと同義であると確認できました。

伝説は本当でした。

だそうだ

ランキング参加中です

↓クリックしていただけると嬉しいです〜