Git Memo
linux
|
comments(0) | 2009/06/21 12:46
個人的なGitメモです。「WEB+DB PRESS 第50号」の中の「特集2 はじめてのGit」を基礎としています。
書式
レポジトリ
/home/hoge/repositry ... ローカルのファイル形式
host:/home/repositry ... scp形式
各コマンド
git init
レポジトリの作成
git init --bare ... ワークツリー無し
git init --shared ... ワークツリー無し
※ 共有ディレクトリを作成する場合はumaskを002(グループ以外にも書き込み許可)とか007(グループ以外には読み込みも付加)
git status
状態表示
git diff
差分をとる。gitの場合、状態はワークツリー、インデックス(キャッシュ)、レポジトリの3種類ある。それぞれのdiffは下のかんじ。

git add
ワークツリーの状態をindexへ記録
git add -u ... ワークツリーの状態を一括してindexへ
git add -p ... diffのハンク毎にaddする(対話式)
git add -A ... git add . && git add -u
git reset
状態を戻る(git revertとは異なりcommitを無かったことにする)
git reset HEAD^ ... HEADを一つ前のコミットまで戻る(インデックスも含め直近のコミットまでを取り消す)
git reset --soft HEAD^ ... 作業ツリーはそのままでレポジトリのポインタをHEADの一つ前まで戻る
git reset --hard HEAD ... ワークツリーの状態を含めてHEADまで戻る(ワークツリー上の変更をインデックスも含め取消)
git reset --hard HEAD^ ... ワークツリーの状態を含めてHEADの一つ前まで戻る
git reset --hard master~4 ... ブランチmasterから4つ前までを取り消す
git commit
indexに記録された状態をレポジトリへ
git commit -a ... git add -u && git commit
git commit -v ... git diff --cached の内容も表示する
git commit --amend ... 直前コミットの取消 (git reset --soft HEAD^ && edit && git commit -c ORIG_HEAD)
git log
ログ
git log -p ... パッチ形式で取得
git log --pretty=short ... サマリー(最初の段落)のみ取得
git log --stat ... 変更されたファイル名なども含め表示
git brame
一行毎に表示
git revert
レポジトリ内の履歴を打ち消す(逆のパッチをあてるような感じ?)
git show
git logとの違いが把握できていない
git push
レポジトリに記録を反映させる
git push <repositry> <branch> ... <repositry>の<branch>に反映
git pull
レポジトリから反映させる
git push
レポジトリに記録を反映させる
git push <repositry> <branch> ... <repositry>の<branch>に反映
git stash
現在のコミットしてない変更状況を保存
git stash ... 現在の状況を保存
git stash pop ... 保存した状況を再読み込み
git branch
git branch ... branchのリストを表示/現在のブランチを確認
git branch <branch> ... <branch>とする(新規作成もそのままOK?)
git checkout
git checkout <branch> ... <branch>にスイッチ
git checkout -b <branch> ... git branch <branch> && git checkout <branch>
git merge
git merge <branch> ... 現在のブランチと<branch>をマージ (git pull . <branch>)
git rm
git rm --cached ... キャッシュの中からのみ取り除く(間違えてaddした場合など)