Skip to content

Instantly share code, notes, and snippets.

@akkunchoi
Created November 10, 2010 09:30
Show Gist options
  • Save akkunchoi/670603 to your computer and use it in GitHub Desktop.
Save akkunchoi/670603 to your computer and use it in GitHub Desktop.
Git

ログ

http://progit.org/book/ja/ch2-3.html $ git log -p # diffも出力する $ git log --stat # 変更したファイルの一覧 $ git log --pretty=oneline #1行で $ git log --pretty=format:"%h - %an, %ar : %s" # 独自のフォーマットで $ git log --since=2.weeks # 日付指定 $ git log -(n) # n件

コミット

直前のコミットをやり直しできる!

$ git commit --amend

ステージングの取り消し

$ git reset HEAD hoge.txt

svn revertのようなもの

$ git checkout -- hoge.txt

ブランチ

http://progit.org/book/ja/ch3-1.html HEADは「あなたが作業しているローカルブランチへのポインタ」

testingブランチを作成(切り替えはしない)

$ git branch testing

切り替える

$ git checkout testing

作成して切り替える

$ git checkout -b issue53

Fast forward ポインタを前に進めるだけ。

タグ

タグの一覧

$ git tag

タグを作成

$ git tag v0.1

注釈付きタグの作成

$ git tag -a v1.4 -m 'my version 1.4'

タグの共有 $ git push origin v1.5 $ git push origin --tags # 共有されてないもの全部

共有

http://progit.org/book/ja/ch3-5.html

「こっちの serverfix で、リモートの awesomebranch を更新しろ」

$ git push origin serverfix:awesomebranch

$ git push origin master
$ git push # 省略できる

リモートにデータを送信 「こっちの (何もなし) で、向こうの [remotebranch] を更新しろ」 ドッカーン。これでブランチはサーバーから消えてしまいました。

$ git push origin :serverfix

リモートのデータを取得

$ git fetch origin

fetchしたものとマージ

$ git merge origin/master

origin/serverfix が指す先から作業を開始するためのローカルブランチができあがりました。 $ git checkout -b serverfix origin/serverfix

追跡ブランチ: cloneすると自動的に追跡ブランチする。これが引数なしでgit pushやgit pullが動作する理由。

これは同じ意味。

$ git checkout --track origin/serverfix
$ git checkout -b serverfix origin/serverfix

fetch とmergeを自動でやってくれる

$ git pull

サブモジュール

http://progit.org/book/ja/ch6-6.html

$ git submodule add git://github.com/chneukirchen/rack.git rack

submoduleのあるリポジトリをcloneした後、

$ git submodule init
$ git submodule update

サブモジュールの外部の変更を取り込むには毎回これをやる

$ git merge origin/master
$ git submodule update

サブモジュールはあるポイントしか見ない!!親プロジェクトはそのポイントを記録する

問題点。特定のバージョンをポイントしている(detached head)ので、git submodule updateで手元の変更が失われやすい

.gitmodulesを見ればわかる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment