maaash.jp

what I create

[git]gitに入門してみた

svn使ってます
myappの下には、trunk, tags, branches がある状態

1
2
3
4
git svn init -s https://path/to/myapp/ myapp  
cd myapp  
git svn fetch[/code]  
これに時間かかる

git checkout trunk[/code]
これがちょっぱやでびびるなぁ

編集した後、

1
2
3
4
5
6
7
git add file1 file2 file3  
git commit -m"[edited file1,2,3]"[/code]  
ローカルへのコミットは気軽にしていいみたい

perlのcatalystアプリで、myapp_local.yml とかもろもろローカルで変更しているのがあるので、  
そいつらがある状態で  
svnにコミットしようとすると、  

Cannot dcommit with a dirty index. Commit your changes first, or stash them with `git stash’.[/code]
って怒られる

1
2
3
4
git stash[/code]  
ってやるとmyapp_local.ymlとかdirtyなファイル達がどっかに退避されるみたい

そこで  

git svn dcommit
[/code]
するとsvnにコミットできる

1
2
3
4
5
6
7
8
9
10
git stash apply  
[/code]  
ってやると退避したのが帰ってくる。

そして  
<a href="http://unknownplace.org/memo/2008/02/19#e002" onclick="javascript:_gaq.push(['_trackEvent','outbound-article','http://unknownplace.org/memo/2008/02/19#e002']);">18:09 zsh の prompt に git のブランチ情報を表示</a>  
これやるべし、と思ったけど、書いてあるようにハッシュ値が出ますよ!  
今の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;

}

my $refs = qx( grep $head $path/.git/info/refs );
if ( $refs =~ m!refs/remotes/(\S+)!) {
$branch = $1;
}
}
elsif ($head =~ m!ref: refs/heads/(\S+)!) {
$head = $1;
}

print ‘(‘, ($branch || $head), ‘)’;
exit;
}
“`

なんとかしたいなー

Comments