Copying repositories
/.:.:. \
/:,:.:.: / ヽ \
/.:.l:.:.:/:/ :/ ', :l ヾ`ー
/!:.:.|:.: l/ 〃 / j } :| ハ
/イ:.:.i|:.:.jL∠/_/ | /l.ム_/| l l } git リポジトリの情報は全て .git ディレクトリに入っているから
N:.ハ:.:.:lィfアト/ レ ィ=ト | /| ∧j プロジェクトのディレクトリだけで完結している
ヽム:.} ii;_j ii;リ ル iレヽ.
`ヘ:ゝ _ 小/ 例えば CVS とは違って…リポジトリとワーキングツリーは同じもの
ヾ:{>、 _ ィ<}/|/
_, ィr'´ヽ{ ___`} ヽ、_
/| l:| | ===| |:l゙ヽ
/ | l:l l l l::l l
l ヽハ l l // |
____
/⌒ ⌒\
/( >) (<)\
/::::::⌒(__人__)⌒::::: \ CVS なんて石器時代だお!
| /| | | | | |
\ (、`ー―'´, /
 ̄ ̄ ̄
, '´ ̄ ̄` ー-、
/ 〃" `ヽ、 \
/ / ハ/ \ハヘ 実は .git ディレクトリ以外の場所に情報を格納することもできるんだけど
|i │ l |リノ `ヽ}_}ハ. そんなことは今考えるべきことじゃないねっ!
|i | 从 ● ●l小N
|i (| ⊂⊃ 、_,、_, ⊂li|ノ
| i⌒ヽ j (_.ノ ノi|__/⌒)
| ヽ ヽx>、 __, イl |::::ヽ/.
| ∧__,ヘ}::ヘ三|:::::/l| |',:::::ハ
| ヾ_:::ッリ :::∨:/ | | >'''´
____
/ \
/ ─ ─\
/ (●) (●) \ つまりプロジェクトのディレクトリを消したら
| (__人__) | 本当に全て無くなってしまうということかお…ちょっと怖いお
/ ∩ノ ⊃ /
( \ / _ノ | |
.\ “ /__| |
\ /___ /
$ rm -rf git-tutorial
, '´ ̄ ̄` ー-、
/ 〃" `ヽ、 \
/ / ハ/ \ハヘ プロジェクトのコピーもディレクトリのコピーだけでできるんだよっ
|i │ l |リノ `ヽ}_}ハ.
|i | 从 ● ●l小N
|i (| ⊂⊃ 、_,、_, ⊂li|ノ
| i⌒ヽ j (_.ノ ノi|__/⌒)
| ヽ ヽx>、 __, イl |::::ヽ/.
| ∧__,ヘ}::ヘ三|:::::/l| |',:::::ハ
| ヾ_:::ッリ :::∨:/ | | >'''´
$ cp -a git-tutorial new-git-tutorial.
/.:.:. \
/:,:.:.: / ヽ \
/.:.l:.:.:/:/ :/ ', :l ヾ`ー
/!:.:.|:.: l/ 〃 / j } :| ハ
/イ:.:.i|:.:.jL∠/_/ | /l.ム_/| l l } インデックスにはファイルの stat 情報も含まれているから
N:.ハ:.:.:lィfアト/ レ ィ=ト | /| ∧j プロジェクトを移動・コピーしたときは
ヽム:.} ii;_j ii;リ ル iレヽ. インデックスを更新する必要がある
`ヘ:ゝ _ 小/
ヾ:{>、 _ ィ<}/|/
_, ィr'´ヽ{ ___`} ヽ、_
/| l:| | ===| |:l゙ヽ
/ | l:l l l l::l l
l ヽハ l l // |
___ ━┓
/ ―\ ┏┛
/ノ (●)\ ・
. | (●) ⌒)\ パーミッションとかのことかお?
. | (__ノ ̄ | とりあえず言われた通りにやっとくお
\ /
\ _ノ
/´ `\
| |
| |
$ git update-index --refresh
, '´ ̄ ̄` ー-、
/ 〃" `ヽ、 \
/ / ハ/ \ハヘ プロジェクトのコピーは別々のマシン間でも同じようにできるんだよっ
|i │ l |リノ `ヽ}_}ハ. その場合、インデックスがどうなってるか分からないから
|i | 从 ● ●l小N 一度リセットするのがオススメにょろ
|i (| ⊂⊃ 、_,、_, ⊂li|ノ
| i⌒ヽ j (_.ノ ノi|__/⌒)
| ヽ ヽx>、 __, イl |::::ヽ/.
| ∧__,ヘ}::ヘ三|:::::/l| |',:::::ハ
| ヾ_:::ッリ :::∨:/ | | >'''´
$ git read-tree --reset HEAD
$ git update-index --refresh
/.:.:. \
/:,:.:.: / ヽ \
/.:.l:.:.:/:/ :/ ', :l ヾ`ー
/!:.:.|:.: l/ 〃 / j } :| ハ
/イ:.:.i|:.:.jL∠/_/ | /l.ム_/| l l } これでインデックスの内容が HEAD と同じになる
N:.ハ:.:.:lィfアト/ レ ィ=ト | /| ∧j ちなみにこれは git-reset で代用できる
ヽム:.} ii;_j ii;リ ル iレヽ.
`ヘ:ゝ _ 小/
ヾ:{>、 _ ィ<}/|/
_, ィr'´ヽ{ ___`} ヽ、_
/| l:| | ===| |:l゙ヽ
/ | l:l l l l::l l
l ヽハ l l // |
$ git reset
____
/⌒ ⌒\ ホジホジ
/( ●) (●)\
/::::::⌒(__人__)⌒::::: \ 簡単なほうのコマンドだけ教えてくれれば十分だお
| mj |ー'´ |
\ 〈__ノ /
ノ ノ
/.:.:. \
/:,:.:.: / ヽ \
/.:.l:.:.:/:/ :/ ', :l ヾ`ー
/!:.:.|:.: l/ 〃 / j } :| ハ
/イ:.:.i|:.:.jL∠/_/ | /l.ム_/| l l } …公開されている git リポジトリのほとんどが
N:.ハ:.:.:lィfアト/ レ ィ=ト | /| ∧j 実際のファイルではなく .git ディレクトリを公開している
ヽム:.} ii;_j ii;リ ル iレヽ. そういうリポジトリをコピーするにはこうすればいい
`ヘ:ゝ _ 小/
ヾ:{>、 _ ィ<}/|/
_, ィr'´ヽ{ ___`} ヽ、_
/| l:| | ===| |:l゙ヽ
/ | l:l l l l::l l
l ヽハ l l // |
$ mkdir my-git
$ cd my-git
$ rsync -rL rsync://rsync.kernel.org/pub/scm/git/git.git/ .git
$ git read-tree HEAD
/⌒ ⌒\
/( ●) (●)\ とりあえず .git ディレクトリを作って
/::::::⌒(__人__)⌒::::: \ インデックスを HEAD と同期してるんだお!
| |r┬-| |
\ `ー'´ /
$ git checkout-index -u -a
, '´ ̄ ̄` ー-、
/ 〃" `ヽ、 \ 上のコマンドでワーキングツリーにファイルをチェックアウトできるよ!
/ / ハ/ \ハヘ -u はあとから git update-index --refresh しなくていいようにインデックスを最新に保つ
|i │ l |リノ `ヽ}_}ハ. -a は全部のファイルをチェックアウトするオプションなのさっ
|i | 从 ● ●l小N
|i (| ⊂⊃ 、_,、_, ⊂li|ノ
| i⌒ヽ j (_.ノ ノi|__/⌒)
| ヽ ヽx>、 __, イl |::::ヽ/.
| ∧__,ヘ}::ヘ三|:::::/l| |',:::::ハ
| ヾ_:::ッリ :::∨:/ | | >'''´
____
/ \ ( ;;;;(
/ _ノ ヽ__\) ;;;;)
/ (─) (─ /;;/
| (__人__) l;;,´ これだけまわりくどいという事は
/ ∩ ノ)━・'/ 必ずもっと簡単なコマンドがあるはずだお…
( \ / _ノ´.| |
.\ " /__| |
\ /___ /
/.:.:. \
/:,:.:.: / ヽ \
/.:.l:.:.:/:/ :/ ', :l ヾ`ー
/!:.:.|:.: l/ 〃 / j } :| ハ
/イ:.:.i|:.:.jL∠/_/ | /l.ム_/| l l } …ある…
N:.ハ:.:.:lィfアト/ レ ィ=ト | /| ∧j
ヽム:.} ii;_j ii;リ ル iレヽ.
`ヘ:ゝ _ 小/
ヾ:{>、 _ ィ<}/|/
_, ィr'´ヽ{ ___`} ヽ、_
/| l:| | ===| |:l゙ヽ
/ | l:l l l l::l l
l ヽハ l l // |
$ git clone rsync://rsync.kernel.org/pub/scm/git/git.git/ my-git
$ cd my-git
$ git checkout
___
/ ⌒ ⌒\
/ (⌒) (⌒) \
/ ///(__人__)/// \
| u. `Y⌒y'´ | さすが git だお!
\ ゙ー ′ ,/ うちに来て妹をファックしていいお!
/⌒ヽ ー‐ ィヽ
/ rー'ゝ 〆ヽ
/,ノヾ ,> ヾ_ノ,|
| ヽ〆 |´ |
, '´ ̄ ̄` ー-、
/ 〃" `ヽ、 \ ちなみにさっき私が clone しようとしたら失敗したにょろ
/ / ハ/ \ハヘ そういう場合は git clone git://github.com/hotchpotch/yaruo.git でもしてればいいのさっ
|i │ l |リノ `ヽ}_}ハ.
|i | 从 ● ●l小N 次はやっとブランチの作成だよ!
|i (| ⊂⊃ 、_,、_, ⊂li|ノ
| i⌒ヽ j (_.ノ ノi|__/⌒)
| ヽ ヽx>、 __, イl |::::ヽ/.
| ∧__,ヘ}::ヘ三|:::::/l| |',:::::ハ
| ヾ_:::ッリ :::∨:/ | | >'''´