Git

Gitコマンド覚書

ローカル作業

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"

reset

ローカルの変更をすべて破棄する

git reset --hard

まだpushしていないコミットを取り消す

(number は reflogコマンドで確認する)
git reset --hard HEAD@{number}

addを取り消す

git reset path...

diff

ワーキングツリーの差分を見る

git diff

任意のファイル同士の差分を見る

git diff --no-index -- file_1 file_2

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}

log

表示数を指定する

git log -n2
最近の変更だとわかっているとき

ログの1行めのみ表示する

git log --oneline
さっと探したいとき

ファイルをどうした(追加、削除、変更)のか知りたいとき

git log --name-status

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"

その他のtagコマンド

rm

ファイルは残して管理外にする

git rm -r --cached directory
やっぱり管理をやめたいファイルがあるとき

ファイルも消す

git rm -r directory
git rm file

remote

接続先リモートリポジトリのURLを知る

git remote -v

リモート

push

ローカルで作成したブランチをpushする

git push --set-upstream origin

checkout

現在のブランチから新しいブランチを作る

git checkout -b NewBranch

環境変数

環境変数一覧
gitではなく、Linux系の環境変数の設定方法だが、以下のように設定と解除を行う
export 変数名=値
unset 変数名

リモートとの接続(fetchやpull)がうまくいかないときに、
export GIT_CURL_VERBOSE=
としてから実行すると、curl -v 相当のログが出る。