[解決済み] git commitの代わりに行った "git commit --amend "を元に戻すには?
2022-03-03 12:28:12
質問
間違って前のコミットを修正してしまいました。コミットは、私が特定のファイルに加えた変更の履歴を保持するために別個のものであるべきでした。
その最後のコミットを取り消す方法はありますか?もし私が以下のようなことをしたら
git reset --hard HEAD^
を実行すると、最初のコミットも元に戻されます。
(リモートディレクトリにはまだプッシュしていません)
解決方法は?
必要なのは、現在のコミットと同じ内容の新しいコミットを作成することです。
HEAD
コミットですが、親を以前のバージョンの
HEAD
.
git reset --soft
はブランチポインタを移動させ、次のコミットが現在のブランチヘッドの位置とは異なるコミットの上で行われるようにします。
# Move the current head so that it's pointing at the old commit
# Leave the index intact for redoing the commit.
# HEAD@{1} gives you "the commit that HEAD pointed at before
# it was moved to where it currently points at". Note that this is
# different from HEAD~1, which gives you "the commit that is the
# parent node of the commit that HEAD is currently pointing to."
git reset --soft HEAD@{1}
# commit the current tree using the commit details of the previous
# HEAD commit. (Note that HEAD@{1} is pointing somewhere different from the
# previous command. It's now pointing at the erroneously amended commit.)
git commit -C HEAD@{1}
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] 既存の、プッシュされていないコミットメッセージを修正するには?
-
[解決済み] 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 revert <hash> not allowed due to a merge but no -m option was given.
-
[解決済み] [email protected] へのいくつかの参考文献のプッシュに失敗しました。
-
[解決済み】「オリジン/マスターへのプッシュが拒否されました」というエラーが常に発生するのはなぜですか?
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push some refs to .......
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push s...
-
[解決済み] [Solved] originにプッシュしようとすると、Gitが「No such remote 'origin'」と言うのはなぜですか?
-
[解決済み] fatal: EOF が早い fatal: インデックスパックが失敗した
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] git update-index --assume-unchanged <file> を元に戻す。
-
[解決済み] GitのHEAD^とHEAD~の違いは何ですか?