unknownplace.org

# 2008-07-23

master にコミットしちゃったのが微妙だけど branch に保存して残しておきたいとき

master にコミットしちゃったのが微妙だけど branch に保存して残しておきたいとき - 8時40分が超えられない - subtech

これ便利だなー branch 切らずに master に直接いれちゃえいう時が良くありますね(ブランチ切れよ)。んであとから見直したら微妙だはずしたい、というとき。push してなければ

git branch bimyou_branch
git reset --hard modositai_tokorono_sha1

だけで master は元に戻るし、branch には残ってるしでばっちり。git おてがるー。(こまめにブランチは切りましょう)

いいね! git++

ただ「pushしてなければ」っていうのを見逃してかわいそうなことになる人がいるかもしれないので強調しておく。push しちゃってたらやっちゃだめよ!

# 2008-04-29

つーか、guidesにあるじゃねーか!!!

secondlife-- (と人のせいにする)

Remove a remote branch — Git Guides — GitHub

# 2008-04-28

remote branch を削除する方法

忘れないうちにメモ

 ~/dev/git/test (master)
$ git checkout -b testbranch
Switched to a new branch "testbranch"

 ~/dev/git/test (testbranch)
$ vim test.txt

 ~/dev/git/test (testbranch)
$ git commit -a
Waiting for Emacs...
Created commit 7dea716: modified test.txt
 1 files changed, 1 insertions(+), 0 deletions(-)

 ~/dev/git/test (testbranch)
$ git push origin testbranch
Counting objects: 5, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 267 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
refs/heads/testbranch: 0000000000000000000000000000000000000000 -> 7dea716ff6f4984c3d0256d09279e9d954af3dc4
To git@github.com:typester/test.git
 * [new branch]      testbranch -> testbranch

 ~/dev/git/test (testbranch)
$ git checkout master
Switched to branch "master"

 ~/dev/git/test (master)
$ git branch -D testbranch
Deleted branch testbranch.

 ~/dev/git/test (master)
$ git push origin :heads/testbranch
refs/heads/testbranch: 7dea716ff6f4984c3d0256d09279e9d954af3dc4 -> deleted
To git@github.com:typester/test.git
 - [deleted]         testbranch

# 2008-04-04

vc-annotate

Emacs の vc-annotate - naoyaのはてなダイアリー

そういえば設定したなとおもっておもむろに M-x vc-annotate してみたら git でもできた!

untitled

設定はこんなんで

http://svn.coderepos.org/share/dotfiles/emacs/typester/.emacs.d/conf/50_git.el

elファイルはgit自体についてくる。

# 2008-02-20

fast-forward merge

は git-svn なブランチ上では予期せぬ動作になるので使用しない方がいいっぽい。

新しいコミット発生しないので git svn dcommit できなくなる。

# 2008-02-19

git-svn 作業フロー

plagger レポジトリで作業するとする。svkとの比較つき。

まず git レポジトリ作成

git svn init -s http://svn.bulknews.net/repos/plagger/ plagger

これで、plaggerってディレクトリにgitレポジトリができる。svk mirror的なものですね

次にsvnとデータをsyncさせる。

cd plagger
git svn fetch

これは svk sync 的なもので対象の変更をすべてtrackしてmerge情報とかを記録する。なので重い。体感では svk sync 以上。

ちなみに最初の init の代わりに clone とすると一気に fetch までしてくれる。

trunk で作業するよ (ここからが通常のワークフロー)

git checkout trunk

で trunk に移動。

svn が変更されてるかもしれないので

git svn rebase

でチェック。(svk pull 的なもの)

いろいろ編集後

git commit -a

で git レポジトリにコミット。この時点ではローカルの git レポジトリにしか反映されてない。

svn に反映させるには

git svn dcommit

とする。これが svk push 的なもの。

ここまでが一応 co から ci までの流れ。

もう少し例。

fastladder-crawler ブランチで作業してみる

ブランチに移動

git checkout fastladder-crawler

いろいろ変更後コミット

git commit -a

このブランチをtrunkにマージしよう

まずtrunkに移動して

git checkout trunk

マージ

git merge fastladder-crawler

これだけ。すばらしく簡単。

ローカルブランチを作って作業も簡単

まずtrunkのローカルブランチをつくる。まずtrunkへ移動

git checkout trunk

test という名前のブランチ作成してそこに移動

git branch test
git checkout test

これは以下で一発にできる

git checkout -b test

いろいろ編集して test ブランチにコミット

git commit -a

それを trunk に反映

git checkout trunk
git merge test

用が済んだらtestブランチ削除

git merge -d test

とかいう感じ。

ブランチ作ったりマージしたりがさくさくできて気持ちいい。svk ユーザーは一度さわってみるといいと思う。

zsh の prompt に git のブランチ情報を表示

svk でやってたものの git 版。

git branch info in zsh prompt

ref: refs/heads/ という部分を消していいのか、ほかのものが入る場合があるのかよくわからなかったので全表示している。

まぁぱっと見で git とわかるからいいかということでとりあえず。

codereposにあげてあるよ。

あぁ、なんか ref: とかすらでずに sha-1 ハッシュ値だけのときもある。もう少し調べないとだめだ。

git

cho45 さんがイイヨイイヨいっていたので git & git-svn ちょっと試し中。

大体基本的な使い方はわかった。

マージが簡単なのはほんとにいい。svk の smerge がより簡単になった感じだ。

ブランチの処理もsvkよりこっちのほうが好き。作りまくって、マージしたら消す。

まだわからないのは適当な場所で git init してスクラッチ的にプロジェクトつくったときそれを svn のほうにマージするにはどうしたらいいのかがまだわからない。

git-svn なレポジトリからスクラッチのほうを pull すればいいのかな? あとでためそう。

あと svk とちがって zsh の補完がかなり高機能でうれしい。svk のはほとんどないも同然。(あるけど遅いので使ってない)

もうしばらく使ってみてから使うかどうか決める。

Page 1 of 1: 1