[解決済み] gitでコミット間を前進・後退させる方法は?
2022-07-18 13:37:07
質問
私は
git bisect
を実行していて、問題のあるコミットに到着した後、私は今、正しいものにいることを確認するために一歩前進/後退をしようとしています。
私が知っているのは
HEAD^
を使って履歴をさかのぼることはできますが、このように(将来の特定のコミットに向かって)前進させる別の近道はないでしょうか。
A - B - C(HEAD) - D - E - F
私は、ターゲットが F から移動したい。 C から D .
注意: これは Git コミット間の行き来をする方法 私の質問は少し異なっており、そこでは回答されていません。
どのように解決するのですか?
私は少し実験して、これは前方にナビゲートするためのトリックを行うように思われる( 編集 : マージコミットなしの線形履歴があるときのみうまく機能します)。
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~'
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
git push は最新の解決策を提供します。
-
解決策正しいアクセス権を持っていることと、リポジトリが存在することを確認してください。
-
Git エラー: ヒント: リモートにあなたが持っていない作業が含まれているため、更新が拒否されました ヒント: あなたが持っていない作業です。
-
giteaを使ったGitサービスの構築
-
Git: bash: cd: 引数が多すぎる
-
gitの利用(ssh鍵の作成とgithubの利用)。
-
Git Bash报错发生: メールアドレスが自動検出されない (「Anita@newton.(none)」を取得)的解决方法。
-
Gitのコミットでfatal: unable to auto-detect email addressのエラーが報告される。
-
[解決済み】Gitで次のコミットを見つけるにはどうしたらいいですか?(refの子/子)
-
[解決済み】git リポジトリを特定のコミットに切り替えるには?