Git, 空のブランチを作成する
動機
vimfiles.git/master plugin/ plugin-a.vim plugin-b.vim doc/ plugin-a.txt
プラグインごとにブランチで管理したら履歴が追いやすくていいのではないかと考えた。
vimfiles.git/plugin-a plugin/ plugin-a.vim doc/ plugin-a.txt
問題: plugin-aブランチをどう作るか。
plugin-aはgit上で開発されているわけではないのでどこかからfetchしてくるわけにはいかない。
plugin-aのリポジトリを作成してからfetchすることは可能だが、いちいちリポジトリ作らず現在のリポジトリ内で操作を完結させたい!
やりたいこと
既存リポジトリ上で、親を持たないコミットを作成したい。
つまり、
==== before ==== a --- b --- c <- master ==== after ==== a --- b --- c <- master e <- plugin-a
ということがしたい。
下調べ
$ mkdir empty-git-repo $ cd empty-git-repo $ git init $ cat .git/HEAD ref: refs/heads/master $ ls .git/refs/heads/ $ # ↑存在しないブランチを指してる……? $ git log fatal: bad default revision 'HEAD' $ # ↑特異な状態のようだ