■svn のリモートブランチを tag 化しリモートリポジトリに push する
$ git branch -r (リモートブランチの一覧を取得)
$ git checkout tags/release-0.3.4_trunk (リモートブランチに移動)
$ git tag v0.3.4 (タグを付ける)
$ git tag
(タグが増えている)
v0.3.4
v0.3.5
$ git push origin v0.3.4 (tag をリモートブランチに push )
$ git push origin --tags (全てのタグを push する)
■別のローカルから tag を pull する
$ git pull origin --tags
$ git tag
v0.3.4
v0.3.5
■tag を消す
$ git tag -d v0.3.5
リモートの tag を消すには
$ git push origin :refs/tags/v0.3.5
■tag から branch を作る
$ git chekout -b <ブランチ名> <タグ名>
(↑は↓と同じ)
$ git branch <ブランチ名> <タグ名>
$ git checkout <ブランチ名>
■パッチ
パッチの作成
$ git-format-patch -r HEAD~ (パッチファイルが作成される)
format-patchで作られたパッチをあてる
$ git-am 0001-Changed-hoge.patch
diffで作られたパッチをあてる
$ git apply 001-Changed-hoge.patch
パッチをチェックする
$ git apply --check 001-Changed-hoge.patch
■CHANGELOG用に log をフォーマットする
git log --pretty=format:"* %s [%an] %h" > CHANGELOG
■タグの情報を見る
git show <タグ名>
■svnのように1ファイルだけリバート
$ git checkout <ファイル名>
もしも、<ファイル名> とブランチの名前が重なる場合は、
$ git checkout -- <ファイル名>
全部リバートしたい場合は、
$ git reset --hard
■過去のコミットからブランチを作る
$ git branch <ブランチ名> <コミット番号>
$ git chekout <ブランチ名>
■リポジトリからブランチを取得する
$ git pull --rebase
$ git branch -a (リモートブランチの取得を確認)
* master
origin/HEAD
origin/issue
origin/master
$ git checkout -b issue origin/issue (ローカルにissueブランチを作成)
$ git branch (ローカルにissueブランチができたことを確認)
* issue
master
■リモートブランチを削除する
$ git branch -d issue (ローカルブランチを削除)
$ git branch -r -d origin/issue (ローカルの追跡用ブランチを削除)
$ git push origin :issue (削除した空のブランチを push)
(ブランチ名の前にコロンを付ける)
■ archive
v0.3.5 タグの内容を v0.3.5/ 以下にアーカイブする。
$ git archive --format=tar --prefix=v0.3.5/ v0.3.5 | gzip > v0.3.5.tar.gz
■ git add でステージしてしまったファイルを取り消す
$ git reset HEAD <ファイル名>
git status で取り消された事を確認する。