Gitめも

#git#まとめ

fuji44

Git メモ

権限を保持する

git update-index --add --chmod=+x [filename]

変更履歴を見る

# git log を標準出力する
git --no-pager log

# 各コミットを一行で出力する
git log --oneline

# git log でマージコミットのみ表示する
git log --merges

# git log ブランチ間の差分コミット一覧を表示する
git log origin/master...origin/develop

# Github PRマージコミットのみ表示
git log --grep="Merge pull request"

# masterからdevelopの差分コミットのうち、Github PRマージコミットのみを一覧で表示
git log --oneline --merges --grep="Merge pull request" origin/master...origin/develop

# masterからdevelopの差分コミットのうち、Github PRマージコミットの件数を表示
git --no-pager log --oneline --merges --grep="Merge pull request" origin/master...origin/develop | wc -l

差分を表示する

git diff --name-only v4.2.20..v4.2.21 | grep -E '^src/main/webapp/(img|css|js)'

# 今のコミットハッシュが指定したとおりかチェックする
diff <(git rev-parse HEAD) <(echo "df44c0b9082767a2edfc1cf9bcc5e116bce99999")

コミットハッシュを表示する

# HEADのコミットハッシュを表示する
git rev-parse HEAD

## HEADのコミットハッシュ(ショート)を表示する
git rev-parse --short HEAD

# HEADから2つ目のコミットハッシュを表示する
# https://stackoverflow.com/a/31448684
# HEADがマージコミットの場合、HEAD~1がマージ元のコミットハッシュになるようなので、git logの通りにならないっぽい
git rev-parse HEAD~2

トラブルシューティング

Windows 環境で ssh-agent にキーを登録しているはずなのに毎回パスフレーズを聞かれる

Windows 組み込みの ssh-agent を使っている場合、 Git for Windows から参照できていない可能性がある。

Windows 組み込みの OpenSSH を使うようにすることで解決する。

git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"

参考: https://qiita.com/y-tsutsu/items/ec984831e6c8262d3ff7