Gitに関するスクラップ

HEADの種類

名前意味
HEAD最新のコミット
ORIG_HEAD最新のコミットの1つ手前
FETCH_HEADリモートブランチの最新のコミット
MERGE_HEADMERGEした対象の最新のコミット

小技

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を間違えてしたときに便利なサブコマンド。reflogHEADが指している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

この記事に関するIssueをGithubで作成する

Read Next