git bundle 初体験

ついでにこっちも twitter のログを貼ってみる。

19:45:30 wtnabe< bundle はそれ自身もまたサブコマンドを取るのか
20:05:52 wtnabe< 分散バージョン管理システムの bundle ファイルってどん
な拡張子にするもんなんだろう?
21:43:34 wtnabe< git bundle create したものを展開するのは git bundle
unbundle ではなく git pull か?
21:52:03 wtnabe< git clone でもなんでもいいのか。git pull なら事前に
git init が必要だし、clone なら何もしなくていい。パスの指定にだけ気を
つければ(たぶん相対パスはNG)

man によるとこのように書かれていて、

NAME
      git-bundle - Move objects and refs by archive

SYNOPSIS
          git bundle create <file> <git-rev-list args>
          git bundle verify <file>
          git bundle list-heads <file> [refname...]
          git bundle unbundle <file> [refname...]

すっかり bundle create で作ったファイルは unbundle するものと思っていたんだけど、どうも違ったらしいというか、自分の場合は以下の方法で目的を達成できた。

$ git bundle create /PATH/TO/BUNDLE_FILE HEAD

(bundleファイルを持ち運ぶ)

git リポジトリ内で

$ git pull /PATH/TO/BUNDLE_FILE

あるいはまっさらのディレクトリで

$ git clone /PATH/TO/BUNDLE_FILE

こんな感じで使うものなのかな?

※ pull がうまくいかないときは checkout も試してみるといいよ!

22日の twitter log より。

あと一気に git pull できなくても fetch すると FETCH_HEAD に保存されるっぽいので、これをもとに checkout -f や merge なんかがじっくり作業できるのはいいなと思った。

More