覚えておくと便利なgitのtipsをいくつか
頻繁に使うわけではないけど便利なgitのtipsをいくつか紹介。というか自分が忘れるからメモ。
git stash
現在作業中のbranchでまだコミットはしたくないけど、trunkで直さないといけないバグとかが見つかったときに、今の変更を横にどけておくコマンド。
$ git stash
で変更をいったん横にどけておいて、他のbranchに切り替えて作業後、今のbranchに戻ってきて
$ git stash pop
とすれば横にどけておいた変更が復活する。
git ignore
プロジェクトの中で除外する必要があるファイルは.gitignoreに書くけど、自分の環境だけで除外したいファイルがある場合は.git/info/excludeに書くのがよいです。
自分の環境ではいつでも除外したいというときは
$ git config --global core.excludesfile $HOME/.gitignore
として、$HOME/.gitignoreに除外したいファイルを書いておけばOKです。
git svn clone -s
git svnでcloneするときにsvnのbranchとかtagも認識させるには
$ git svn clone http://svn.repos/project -T trunk -b branches -t tags
とします。もしsvnのリポジトリの構成が上記のように標準的な構成(trunk、branches、tags)であれば下記のようにするだけでOKです。
$ git svn clone http://svn.repos/project -s
git reset
git resetはコミットを取り消すことができます。よく使うのは
$ git reset HEAD^
で直前のコミットを取り消すとか。
git commit –amend
直前のコミットを修正したいときはcommit –amendが便利です。
$ git commit(間違ったコミット)
間違えを修正して
$ git commit --amend(直前のコミットが置き換えられる)
git add -p
同じファイルだけど一部の変更だけコミットしたいというときはgit add -pを使います。diff形式で変更部分を記録するか聞いてくるので、記録したい部分だけyと応えればOKです。
$ git add -p
diff --git a/Root.pm b/Root.pm
index 707f4e8..891bd77 100644
--- a/Root.pm
+++ b/Root.pm
@@ -6,9 +6,6 @@ has '+namespace' => default => '';
# default 404 handler
sub default :Path :Args {
my ($self, $c) = @_;
-
- $c->res->status(404);
- $c->res->body('404 Not Found');
}
sub index :Path :Args(0) {
Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? n
@@ -23,7 +20,8 @@ sub index :Path :Args(0) {
sub index :Path :Args(0) {
my ($self, $c) = @_;
- $c->res->body('Ark Default Index');
+
+ $c->stash->{entries} = models('Entry')->get_entries;
}
1;
Stage this hunk [y,n,q,a,d,/,K,g,e,?]? y
git config alias
gitのcommitとかcheckoutなどのよく使うコマンドにはalias貼っておくと便利です。checkoutのaliasにcoを設定するには以下のようにします。
$ git config --global alias.co checkout
僕が設定してるのはこんな感じ
$ git config -l
alias.co=checkout
alias.ci=commit
alias.st=status
alias.br=branch
- Prev Entry:jQuery1.4でhtmlとremoveのベンチマーク
- Next Entry:perlの置換でeオプション