Gitに関するスクラップ
HEADの種類
名前 | 意味 |
---|---|
HEAD | 最新のコミット |
ORIG_HEAD | 最新のコミットの1つ手前 |
FETCH_HEAD | リモートブランチの最新のコミット |
MERGE_HEAD | MERGEした対象の最新のコミット |
小技
git push origin HEAD
すれば現在のブランチをpushできて嬉しい。
特定のコミットに戻す
${hash}
: 特定のコミット${dirname}
: ディレクトリ名${file_n}
: ファイル名
# 全体
git checkout ${hash}
# 特定のディレクトリ
git checkout ${hash} ${dirname}
# 特定のファイル
git checkout ${hash} ${file_1} ${file_2}
reset系
# add取り消し
git reset --mixed HEAD
# commit取り消し
git reset --soft HEAD^
# 直前のcommitの削除
git reset --hard HEAD^
# commit後の変更取り消し
git reset --hard HEAD
# 直前のresetを取り消す
git reset --hard ORIG_HEAD
# remote branchのHEADで上書き (間違ってamendしてpushしたときなどに)
git reset origin/${branch_name}
reflog
git reset
を間違えてしたときに便利なサブコマンド。reflog
はHEAD
が指しているcommitのリストで、ローカルでのみ保存される。reflog
はデフォルトでは直近90日で削除される。local特有のものなので、リモート側では保持されていない。
git pushがフリーズ
unset SSH_ASKPASS && unset GIT_ASKPASS
git credentialsのreset
--local
, --system
あたりは任意で変更。
git config --global --unset credential.helper
現在のbranch名の取得
git symbolic-ref --short HEAD