ローカル作業
add
特定のフォルダだけ追加する
git add directory
複数のフォルダを指定して追加する
git add dir1 dir2
複数のフォルダを指定して追加する(wildcard)
git add dir*/
commit
Text editorでコメントを書く
git commit
1行コメントを書く
git commit -m "comment"
複数行コメントを書く
git commit -m "summary" -m "detail1" -m "detail2"
config
設定例: コマンドエイリアスを作る
git config --global alias.co checkout
git config --global alias.ada 'add -A'
オプションを付ける場合はシングルクォートでくくる。
設定削除例: コマンドエイリアス
git config --global --unset alias.co
diff
ワーキングツリーの差分を見る
git diff
任意のファイル同士の差分を見る
git diff --no-index -- file_1 file_2
log
表示数を指定する
git log -n2
最近の変更だとわかっているとき
ログの1行めのみ表示する
git log --oneline
さっと探したいとき
ファイルをどうした(追加、削除、変更)のか知りたいとき
git log --name-status
merge
今のブランチにmasterをマージする(基本)
git merge origin/master
remoteブランチの内容を強制的に反映させる
git merge origin/master --theirs
remote
接続先リモートリポジトリのURLを知る
git remote -v
reset
ワーキングディレクトリの変更を戻す
git reset HEAD target/directory/path
SVN revertに相当する。
ローカルの変更をすべて破棄する
git reset --hard
まだpushしていないコミットを取り消す
(number は reflogコマンドで確認する)
git reset --hard HEAD@{number}
addを取り消す
git reset path...
rm
ファイルは残して管理外にする
git rm -r --cached directory
やっぱり管理をやめたいファイルがあるとき
ファイルも消す
git rm -r directory
git rm file
stash
現在のローカルの変更を保存する
git stash
git stash save "覚書ラベル"
stashの実行後は、ローカルの変更は消えてHEADに戻る
現在のローカルの変更の一部を保存する
git stash push --message "覚書ラベル" -- pathspec
特定のパス(pathspec)にあるファイルのみ。
最後に保存したstashを取り出す(stackからは消える)
git stash pop
最後に保存したstashを適用する(stackに残る)
git stash apply
ためしに適用してみたり、複数のブランチに適用したときに使う。
先頭のstashを破棄する
git stash drop
stashの一覧を見る
git stash list
特定のstashの内容(ファイル一覧)を見る
git stash show stash@{0}
tag
現在のブランチにタグをつける(そしてリモートに上げる)
git tag name_of_tag
git push origin name_of_tag
特定のコミットにタグをつける
git tag name_of_tag commit_hash
コメントを付けてタグを作成する
git tag name_of_tag -m "comment"
リモート
checkout
現在のブランチから新しいブランチを作る
git checkout -b NewBranch
push
ローカルで作成したブランチをpushする
git push --set-upstream origin
環境変数
環境変数一覧
gitではなく、Linux系の環境変数の設定方法だが、以下のように設定と解除を行う
export 変数名=値
unset 変数名
リモートとの接続(fetchやpull)がうまくいかないときに、
export GIT_CURL_VERBOSE=
としてから実行すると、curl -v 相当のログが出る。