git で tag を打って push しようとしたんだけど、tag の打ち方が分かってなくて、自分が svn 脳になっていたのが分かった話。

git

基本的には git の tag 打ちは

git tag -a TAGNAME

かな? で、

git tag

git tag -l

ってやると打った tag の確認ができる。そう、確認できるってことを分かってなかった。確認してればハマる必要なかったんだけど、自分はここで

commit できねぇ

と思ってしまった。必要ないのに。

commit できなきゃ push できないじゃーんと思っていたが、そんなことはなかった。

git push --tags

すれば作った tag を push できた。

svn

svn には tag も branch もない。自分はこの思い切りの良さ、きらいじゃないんだけど、git の開発をするに至った Linus にはとてもバカバカしいものに見えているようで、かなり辛辣な批判をしている。

Linus曰く「Subversionは史上最も無意味なプロジェクト」 - スラッシュドット・ジャパン

まぁとにかく tag も branch もない。あるのは cp だけ。つまり、その時点のディレクトリツリーの snapshot を取る機能だけ。で、それを commit する。

cvs

cvs の tag はどうだったっけと思って調べたらやはり cvs の tag も commit 不要だった。

cvs tag [-b] TAG

※ cvs の場合はファイル単位で tag を打てるし、割とそういう文化だったんだけど、そこは省略しておく。

で、確認の方法はすっかり忘れていたんだけど、

cvs stat -v

でイケた。

cvs --help status
Usage: cvs status [-vlR] [files...]
	-v	Verbose format; includes tag information for the file

これで tag が打てていることを確認できる。

More