gitタグのついている投稿
gitにて公開したbranchでrebaseしちゃダメ
2010年7月9日
言いたいことは、「公開したbranchではrebase禁止!」
例えば:Aさんがbranch作り、Bさんが派生したbranchを作ったら、Aさんはrebase禁止!
続きを読む >
git1.6 install
2010年1月6日
環境によってはインストールオプションが必要みたい。
wget http://kernel.org/pub/software/scm/git/git-1.6.6.tar.bz2 ./configure make
とすると、
こんなエラーが出て、makeが出て止まる。
BUILTIN git-repo-config
BUILTIN git-show
BUILTIN git-status
BUILTIN git-whatchanged
SUBDIR git-gui
GITGUI_VERSION = 0.10.2
* new locations or Tcl/Tk interpreter
GEN git-gui
INDEX lib/
* tclsh failed; using unoptimized loading
MSGFMT po/de.msg make[1]: *** [po/de.msg] Error 127
make: *** [all] Error 2
gettextもtclも入っている。
おそらくGUI関連のバイナリも作ろうとしているので、configureを以下のようにして回避。
./configure --without-tcltk make sudo make install
git memo
2009年9月12日
手元の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はあまり深く書いていないので、運用しているとかゆいところに手を出そうとしても手が出せない。もっとしっかり理解したい場合は、洋書だけどVersion Control with Gitがいい。
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で管理すると共有が楽。
RedmineとSCMの連携
2009年8月10日
redmineとSCM(gitなど)が連携して開発者の作業時間を減らす便利な機能を紹介します。
SCMのコミットメッセージにredmineによって規定されたフォーマットでチケットIDを
記載するとチケットとソースコードの関連性を強化できます。
■1 チケットとの参照
redmineのチケットとソースコードを関連づけられるので、
redmineに登録されたどの要望によって変更されたcommitかを把握できます。
逆に、あるコミットは何のためのコミットなのかも把握できます。
要望やバグの細かいことはチケットに書いてある状態になるので、
コミット時に記載するメッセージを省略できます。
フォーマット:
refs #
(使えるタグ:refs,references,IssueID)
例:
refs 3
■2 自動的にタスクを終了にする
このプロジェクトでは、redmineが共有レポジトリのmasterを監視しています。
共有レポジトリのマスタに反映された時点でタスクが終了に設定されます。
フォーマット:
fixes #
(使えるタグ:fixes,closes)
例:
fixes 3
細かいフォーマットはこちら
http://redmine.jp/tech_note/subversion/


最近のコメント