27. 11月 2010 · Write a comment · Categories: Git

origin/masterにnon-fast-forwardでpushできなくなった!
さすがにmasterを削除することはできない(元々削除できないが)ので何とかしてみる。

まずローカルのmasterをリネーム(masterは削除できない)

git branch -m master temp

次にリモートのブランチを全て取得

git fetch

そしてリモートのmasterと同じものをローカルに構築

git branch master origin/master

masterに入って

git checkout master

ワークブランチをrebase

git rebase my-work-branch

そしてpush

git push origin master

しかしstageが無かったらどうやって作業したらいいのか分からなくなってしまった。
今さらsvnに戻れとか言われたら発狂する。

screenを縦に分割して2画面で作業する方法。
Ubuntuの場合:
既にパッチの当たったscreenが入っているので、修飾キー(C-zとか)→|(パイプ)で分割
Macの場合:
macportsのものだとうまく動かないので、tscreenをソースから入れ、.screenrcを.tscreenrcに書き換えて

bind v split -v

とか書いておく

ログやautospecを流しながら作業ができて便利ではあるんだけど、とにかく遅い。script/serverみたいにコンソールと同期するものは動作が止まったりする。ついでにマウスでコピペができなくなる(左右まとめて選択してしまう)のも厄介。実用性は微妙かも知れない…

15. 11月 2010 · Write a comment · Categories: Git

毎日、作業開始時に

git checkout master
git pull origin master
git checkout my-work-branch
git rebase master

とやってたんだけど、なんか妙なマージコミットが混ざってるよ、と注意された。
git pullはfetch+mergeらしいので、それでかなぁ。
git pull origin masterの代わりにgit pull –rebase origin masterにすればOK。
–rebaseの位置をよく間違える。

More »

15. 11月 2010 · Write a comment · Categories: Git

zshで右プロンプトにgitの状態を表示させてみたが、zshの最近のバージョン(4.3.10)のvcs_infoは、いちいちgitを呼ばなくてもリポジトリの状態を把握できるらしい。
毎回gitが走ると当然遅いので、vcs_infoに切り替えてみた。

More »

zshには右プロンプトというものがある。
何に使うの?と思ってたけど、パスとかを表示させておくと便利(左に表示させるのと比べてカラムがずれないとか)なようなので試してみた。
ついでに、うっかりmasterをいじり回してしまう事故を防ぐために、gitのブランチも表示させてみる。

More »