バージョン管理 Git に関するメモ
Git用語
- HEAD
- 現在のブランチが指すコミット(正確にはそのコミットを指すポインタ的なものかな)
- チェックアウト
- ブランチを切り替える
コミットログを簡易に見る - git log
git log --oneline
git log [ブランチ名] --oneline
コミットハッシュと1行コメントがずらっと
ブランチのHEADを移動して戻す - git reset
指定したコミットの次のコミット(git add & git commit)をする直前の状態まで戻る
(次のコミットの直前の状態、指定したコミット後にファイルを編集した後の状態になる)
(git statusで見れば分かる)
HEADの参照先を変えるだけらしいので戻ったのをやめたかったらコミットが生きてたらコミットハッシュで飛べるようだ
スイッチで--soft や --hard や --keep で動作が変わるらしいけどよくわかんない
既にpushして公開した状態から戻るのはダメらしい(マナー的に)
特定のコミットでの編集を取り消すコミットを作る(歴史セーフティ) - git revert
git revert [コミットハッシュ] ([コミットハッシュ] ...)
そのコミットでの編集箇所だけを取り消すコミットを作り出せる
でもそのコミットが歴史から消えるわけでなく
そのコミットでの編集内容を取り消しましたという新しいコミットを追加する
(ファイルを追加してたらそのファイルが消えるし、削除してたら復活、編集なら編集部分の取り消し)
[C1]-[C2]-[C3]-[C4] とあって[C2]をrevertすると
[C1]-[C2]-[C3]-[C4]-[C5] となって [C5]は「C2の部分だけ取り消し」という感じになる
[C1]-[C3]-[C4] とはならないのでpushして公開したリポジトリでも比較的容易に前の状態に戻せる!
他のコミットから編集内容をコピる - git cherry-pick
git cherry-pick [コミットハッシュ] ([コミットハッシュ] ...)
そのコミットでの編集内容を現在のブランチにも適用する
チェックアウトするのに一時的にステータスをクリーンにする - git stash
これで編集中のファイルを一時退避してコミット直後の状態にまで戻る
※注意:新規ファイルには適用されないようだ
溜めこんだ一時退避ファイルは他のブランチでも取り出し・適用ができる
git stash apply stash@{番号}
applyはスタッシュのスタックから取り出さずに現在のブランチに適用する
popはスタッシュのスタックから取り出して現在のブランチに適用する(スタックから無くなる)
現在のブランチのコミットをまとめて整理する - git rebase
※一度やると戻せないので注意
※表示されるコミットの順番がコミットログの逆であることに注意(古いのが上・新しいのが下にくる)
pickのところをsquashに直すと1つ上にあるコミットにまとめられる
(つまり一番上・もっとも古いコミットはsquashできない)
リリースブランチ(公開するブランチ)にマージする前に見せたくないコミットや邪魔なコミットなどを消すために使うらしい
コミットにタグをつける - git tag
HEADが指すコミットにタグをつけ、さらにコメントを付ける
git tag -a [タグ名] [コミットハッシュ]
指定したコミットにタグをつけ、さらにコメントを付ける
HEADが指すコミットに簡易版タグをつける
指定したコミットに簡易版タグをつける
空のブランチを追加する - git checkout --orphan
git checkout --orphan [ブランチ名]
現在のリポジトリにファイルを一切持たない空のブランチを作る
それまでの歴史からも完全に独立する
GitHub Pagesなどのプロジェクト用のサイト(gh-pagesブランチ)を作るときなどに使ったりする
※ブランチ自体は空だがcheckout前の作業ファイルはそのまま残るので必要に応じて削除したりする
.
最終更新:2014年08月02日 14:43