手元のgitメモが溜ってきたので放出!
% cat ~/.gitconfig [user] name = Yuki Matsukura email = 秘密@秘密ドメイン [color] ui = auto diff = auto status = auto branch = auto interactive = auto
Subversion vs git
subversionへの不満が爆発。
- 2年前頃からtortoiseSVNでupdate,add,commitをしていると.svnディレクトリ内が壊れるようで、add,update,commitが一切できなくなる。回復するためには再チェックアウトするしかない。(過去2年で、かれこれ10回ぐらい起きた。)
- ファイルが多くなるとcommit,updateがすごい遅い。(1,2分かかる)
- チェックアウトすると小さいファイルを大量に作る→Disk IOが激しい
gitが良さそう。
- 軽い
- 大規模プロジェクトで利用されている
Web上の資料読んでもモデルが理解しづらいのでWeb+DB PRESS Vol.50を読むのが一番!
WEB+DB PRESS Vol.50
新人さん歓迎号! 創刊50 号記念! 新連載一挙スタート! □特集1 人月・派遣・業界構造、学ぶべき技術、仕事のルール 新人 エンジニア 生き方 新人時代に押さえておくべき50の知識 □特集2 ブランチもマージも簡単な分散型バージョン管理シ...
Web+DBはあまり深く書いていないので、運用しているとかゆいところに手を出そうとしても手が出せない。もっとしっかり理解したい場合は、洋書だけどVersion Control with Gitがいい。
Bitly
TIPS
あるコミット分だけ反映
% git fetch % git-cherry-pick 0e736c1eff177f143ae55ab8971bae6e5753cdb6
ワークツリーの変更を取り消し
% git checkout -- path/to/file
直前のコミット取り消し
% git revert HEAD
mergeされていないbranchのリスト
% git branch --no-merged
あとからbranchを作る
% git branch new-branch % git reset --hard
CVSやsvnのkeywordパラメータのように、$Id:$を自動的に置換する設定
% echo "* ident" >> .gitattributes
remote repositoryのbranchを消す
空のブランチをremoteにpushすればいい。
% git push origin :20090918-sitemap
git fetchするだけでは、remoteの消えたbranchをローカルのtracking branchに反映してくれないので、
ローカルのtracking branchも消す
% git branch -d -r origin/20090907-sitemap
あとからブランチを作る
小さな修正だと思って、masterをいじっていたら実は根が深く、branchを作っておけば良かったなぁと思ったときの対処法
% git commit -a % git branch new-branch % git reset --hard HEAD~1
worktreeをcommitしておく。現時点の作業がbranchになるため。
そして、index,worktreeを指定したrevisionに戻す。
UNIX設定ファイル共有
ホームディレクトリのファイルをgitで管理すると共有が楽。
Comments