私は少し実験しました、そしてこれは前方にナビゲートするトリックをするようです(編集:マージコミットなしの線形履歴がある場合にのみうまく機能します):
git checkout $(git rev-list --topo-order HEAD..towards | tail -1)
どこ towardsコミットのSHA1またはタグです。
説明:
- 内部のコマンド
$()は、現在HEADとコミットの間のすべてのコミットを取得しtowards(を除くHEAD)、優先順位でソートしgit logます(デフォルトの場合と同様-奇妙なことにのデフォルトである年代順ではなくrev-list)、最後のコミットを取得します(tail)、つまり、行きたいもの。
- これはサブシェルで評価され、
git checkoutチェックアウトを実行するために渡されます。
.profile特定のコミットに向けてナビゲートするために、ファイル内のパラメーター期待エイリアスとしてアクセス可能な関数を定義できます。
# Go forward in Git commit hierarchy, towards particular commit
# Usage:
# gofwd v1.2.7
# Does nothing when the parameter is not specified.
gofwd() {
git checkout $(git rev-list --topo-order HEAD.."$*" | tail -1)
}
# Go back in Git commit hierarchy
# Usage:
# goback
alias goback='git checkout HEAD~'