[git]gitに入門してみた
Posted on 7月 3, 2008
Filed Under zsh, git, perl |
svn使ってます
myappの下には、trunk, tags, branches がある状態
CODE:
-
git svn init -s https://path/to/myapp/ myapp
-
cd myapp
-
git svn fetch
これに時間かかる
CODE:
-
git checkout trunk
これがちょっぱやでびびるなぁ
編集した後、
CODE:
-
git add file1 file2 file3
-
git commit -m"[edited file1,2,3]"
ローカルへのコミットは気軽にしていいみたい
perlのcatalystアプリで、myapp_local.yml とかもろもろローカルで変更しているのがあるので、
そいつらがある状態で
svnにコミットしようとすると、
CODE:
-
Cannot dcommit with a dirty index. Commit your changes first, or stash them with `git stash'.
って怒られる
CODE:
-
git stash
ってやるとmyapp_local.ymlとかdirtyなファイル達がどっかに退避されるみたい
そこで
CODE:
-
git svn dcommit
するとsvnにコミットできる
CODE:
-
git stash apply
ってやると退避したのが帰ってくる。
そして
18:09 zsh の prompt に git のブランチ情報を表示
これやるべし、と思ったけど、書いてあるようにハッシュ値が出ますよ!
今のcoderepos版でも。
gitのとこ、↓こうしたら一時的にokだったけど、まだだめみたい。
PERL:
-
# git
-
if (-d "$path/.git" && -f "$path/.git/HEAD") {
-
my $branch;
-
-
my $head = file("$path/.git/HEAD")->slurp;
-
chomp $head;
-
-
if ($head =~ /^\w{40}$/) { # no local branch?
-
#my $refs = qx( grep $head -l $path/.git/refs/remotes/{,**/}* );
-
#if ($refs =~ m!.git/refs/(\S+)!) {
-
# $branch = $1;
-
#}
-
$branch = $1;
-
}
-
}
-
$head = $1;
-
}
-
-
exit;
-
}
なんとかしたいなー
Comments
One Response to “[git]gitに入門してみた”
Leave a Reply
trunkとかbranches/* とかは、
リモートにある名前と同じ名前でローカルブランチをつくるのが常道みたい
git checkout remotes/trunk
git branch trunk
で、trunkっていうbranchができる
そこで
git svn rebase
ってすると、リモートのsubversionのtrunkの最新をとってくる。
branches/* でもいっしょ
nrhd-