doc.dev1x.org

Git

git init

リポジトリを作成する

git init

リモートリポジトリ用のbareリポジトリを作成する

git init --bare

git clone

リモートからリポジトリを取得する

git clone [リモートリポジトリのURL]

指定した名前でリモートからリポジトリを取得する

git clone [リモートリポジトリのURL] [リポジトリのディレクトリ名]

git branch

ブランチの一覧表示

git branch

ブランチの一覧表示(リモートブランチも表示)

git branch -r

ブランチの名前を変更

git branch -m [現在のブランチ名] [変更したいブランチ名]

ブランチを削除(ローカルブランチ)

git branch -D [ブランチ]

ブランチを削除(リモートブランチ)

git push origin --delete [ブランチ]

git checkout

ブランチを切り替える

git checkout [ブランチ名]

ブランチを作成と切り替えを同時に行う

git checkout -b [ブランチ名]

指定したファイルを指定したリビジョンに切り替える

git checkout [ハッシュ] [ファイル名]

リモートリポジトリにあるブランチに切り替える

git fetch origin [リモートブランチ]
git checkout [ブランチ]

git diff

コミット前のファイルの差分を確認

git diff

git addしたファイルの差分を確認

git diff --cached

コミット同士を比較

git diff [変更前のハッシュ] [変更後のハッシュ]

リモートとローカルの差分を確認

# ローカルでコミットした後など、ローカルの方が新しい事が想定される場合
git diff [リモートブランチ]..HEAD

# リモートからプルする前など、ローカルの方が古い事が想定される場合
git diff HEAD..[リモートブランチ]

最新のコミットの差分を確認

git diff HEAD^

ブランチ間の差分を確認

git diff [ブランチA]..[ブランチB]

差分のあるファイル名のみ表示

git diff --name-only

改行コードや空白を無視

git diff -w

空行を無視

git diff --ignore-blank-lines

git add

ワークツリーの変更をステージングエリアに追加

git add [ファイル名]

全てのワークツリーの変更をステージングエリアに追加

git add -A

関連

git stash

変更中のファイルを一時的に退避させる

git stash

退避しているファイルのリストを表示

git stash list

退避しているファイルを戻す

git stash pop

git reset

ステージングエリアに追加したファイルを取り消す

git reset [ファイル]

特定のコミットに戻す

git reset [ハッシュ]

コミットを取り消す

git reset --soft [ハッシュ]
git reset --hard [ハッシュ]

直前のコミットを取り消す

git reset [--hard|--soft] HEAD^

git resetを取り消す

git reset --hard ORIG_HEAD

git status

ワークツリーの状態を表示

git status

git commit

ステージングエリアのファイルをコミットする

git commit

コミットとコミットメッセージの追加を同時に行う

git commit -m [コミットメッセージ]

空のコミットを作成する

git commit --allow-empty

直前のコミットを修正する

git commit --amend

git tag

現在のコミットにタグを打つ

git tag [タグの名前]

指定したコミットにタグを打つ

git tag [タグの名前] [ハッシュ]

タグを削除

git tag -d [タグの名前]

タグをリモートにプッシュ

git push [タグの名前]

タグの一覧を表示

git tag

git mv

ファイルの移動/ファイル名の変更

git mv [対象ファイル] [移動先/変更後ファイル名]

git rm

ファイルの削除

git mv [対象ファイル]

git fetch

リモートリポジトリから履歴を取得

git fetch

git pull

リモートリポジトリから履歴を取得して変更をマージする

git pull [リモートブランチ]

git push

リモートリポジトリへローカルの内容をアップロードする

git push [リモートブランチ]

リモートリポジトリへ強制的にアップロードする(歴史改変)

git push -f [リモートブランチ]

リモートリポジトリを削除する

git push origin --delete [リモートブランチ]

git merge

現在のブランチに指定したブランチの内容をマージ

git merge [ブランチ]

マージ時にコミットしない(ドライラン)

git merge --no-commit [ブランチ]

git clean

リポジトリで管理されていないファイルを削除

git clean -dfx

ドライラン

git clean -n

git revert

既存のコミットを取り消す

git revert [ハッシュ]

打ち消しコミットを作るが、コミットはしない

git revert -n [ハッシュ]

マージコミットの打ち消し

git revert -m [1|2] [ハッシュ]
git log
commit xxxxxxxxx
Merge: yyyyy zzzzz   # <= コミットハッシュの並び順に1、2...となる
Author: xxx xxx
Date:   Fri Jan 1 00:00:00 2010 +0900

git rebase

コミットログを修正する

git rebase -i [コミット]

git cherry-pick

指定したコミットをマージする

git cherry-pick [コミット]
git cherry-pick [コミット] [コミット] ...

cherry-pickするがコミットしない

# もしくは --no-commit
git cherry-pick -n [コミット]

git log

コミット履歴を表示する

git log

diffを一緒に表示

git log -p

変更状況を一緒に表示

git log --stat

コミットグラフを表示

git log --graph

コミットログの時間をISO8061形式に変更する

git log --date=iso

コミットログの出力フォーマットを指定する

git log --pretty=[フォーマット]

お気に入りフォーマット

git log --date=iso --pretty=format:"[%ad] %h %an : %s"

参考資料