GIT IMMERSIONで無料でGitを学ぶ メモ7
GIT IMMERSIONで無料でGitを学ぶ メモ1
GIT IMMERSIONで無料でGitを学ぶ メモ2
GIT IMMERSIONで無料でGitを学ぶ メモ3
GIT IMMERSIONで無料でGitを学ぶ メモ4
GIT IMMERSIONで無料でGitを学ぶ メモ5
GIT IMMERSIONで無料でGitを学ぶ メモ6
に引き続きメモその7です。
続きはこちら
GIT IMMERSIONで無料でGitを学ぶ メモ8
GIT IMMERSIONというGitのやり方を教えてくれるチュートリアルサイトを勉強しながらメモを取っています。
自分用なのであまり見やすいものではないです。
※ $ git hist コマンドはGIT IMMERSION LAB11 でコマンドエイリアスを設定しているので
hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
の意味です。
$ git go コマンドは同じくエイリアスを設定しているので、
go='git checkout '
の意味です。
GIT IMMERSION LAB43
pullした変更をマージする
現在のブランチと作業ディレクトリにpullした変更を反映しよう。
01:fetchした変更をローカルのmasterにmerge
実行してみよう
$ git merge origin/master実行結果は以下のようなイメージだ。
- -
$ git merge origin/master
Updating e1399d1..e18658c
Fast-forward
README | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
- -
02:READMEファイルをもう一度確認
今の時点で変更を確認するべきだ。
実行してみよう
$ cat README実行結果は以下のようなイメージだ。
- -
$ cat README
This is the Hello World example from the git tutorial.
(changed in original)
- -
変更された箇所がちゃんとあるね。"Git fetch"は変更をマージしてくれないが、手動でリモートリポジトリから変更をマージすることができる。
03:次回は
次は、単一のコマンドでフェッチ&マージプロセスを組み合わせてみよう。
GIT IMMERSION LAB44
変更のpull
"git pull"は"git fetch"+"git merge"と同等なことを学ぶ。ディスカッション
別の変更を作成し、それをpullするというプロセスを再度行うつもりはないが、知って欲しい$ git pull
は次の2つの手順を行うことと全く同等だ。
$git fetch
$ git merge origin/master
GIT IMMERSION LAB45
トラッキングブランチの追加
リモートブランチを追跡するローカルブランチを追加する方法を学ぼう。
remotes/originで始まるブランチは元のリポジトリのブランチだ。もうgreetというブランチを持っていないことに注意して欲しい。だがgreetブランチはオリジナルのリポジトリがgreetブランチを持っていたことを知っている。01:リモートブランチを追跡するローカルブランチを追加しよう
実行してみよう
$ git branch --track greet origin/greet
$ git branch -a
$ git hist --max-count=2実行結果は以下のようなイメージだ。
- -
$ git branch --track greet origin/greet
Branch greet set up to track remote branch greet from origin.
$ git branch -a
greet
* master
remotes/origin/HEAD -> origin/master
remotes/origin/greet
remotes/origin/master
$ git hist --max-count=2
* e18658c 2012-03-06 | Changed README in original repo (HEAD, origin/master, origin/HEAD, master) [Jim Weirich]
* e1399d1 2012-03-06 | Updated Rakefile (origin/greet, greet) [Jim Weirich]
- -
ブランチの一覧にgreetブランチがあり、ログに表示されることがわかったと思う。
GIT IMMERSION LAB46
bare リポジトリ
bareリポジトリを作成する方法を学ぶ。
作業ディレクトリの無い管理情報だけのbareリポジトリは通常は共有のためにつかわれる。01: bareリポジトリを作成
実行してみよう。
$ cd ..
$ git clone --bare hello hello.git
$ ls hello.git注意:現在作業ディレクトリにいる。
実行結果は以下のようなイメージだ。
- -
$ git clone --bare hello hello.git
Cloning into bare repository 'hello.git'...
done.
$ ls hello.git
HEAD
config
description
hooks
info
objects
packed-refs
refs
- -
'.git'で終わるリポジトリはbareリポジトリであるという規則になっている。hello.gitリポジトリには作業ディレクトリが存在しないことがわかる。基本的に非bareリポジトリの.gitディレクトリに過ぎない
GIT IMMERSION LAB47
リモートリポジトリに追加する
元のリポジトリにリモートとしてbareリポジトリを追加する。
元のリポジトリにhello.gitリポジトリを追加してみよう。実行してみよう
$ cd hello
$ git remote add shared ../hello.git
注:今「hello」リポジトリにいる。