私は元に戻ろうとしましたが、紛らわしい葛藤を続けました。前のgitコミットのコピーを作成してそれを頭にする方法
A-B-C-D-E-F
A-B-C-D-E-F-D」
これを行うための簡単な方法があります:
は、私はこのような何かをしたいです。
私は元に戻ろうとしましたが、紛らわしい葛藤を続けました。前のgitコミットのコピーを作成してそれを頭にする方法
A-B-C-D-E-F
A-B-C-D-E-F-D」
これを行うための簡単な方法があります:
は、私はこのような何かをしたいです。
あなたの投稿やコメントからわかるように、F
とE
を元に戻して、履歴として保存したいと考えています。 D
後にコミットあなたはしかし、バックHEAD
から遠いとn
を置き換える
git revert HEAD~n..HEAD
(あなたの現在のコミット)されています。何ができることはこれです。
これは、コミットをすべてHEAD
から復帰させ、逆順でD
の後にコミットすることで、競合がないことを保証します。
これは、その範囲にマージコミットがあると、かなり複雑になります。マージの最初の親のブランチにコミット好む、および他の枝にマージすることによって導入された変更を削除します
git revert -m 1 HEAD~n..HEAD
:がある場合は、このような何かを行います。それはあなたが実際にしたいことをやり遂げないかもしれないので、細心の注意を払ってこれを行います。受け入れ答えに反対して
、私は(あなたが周りのどこかに飛ばされたものを維持しながら、いくつかのコミットをバックに設定したいmaster
ブランチ、について話していると仮定して)を示唆している:
git checkout master
git checkout -b old_master
git branch -f master D
git checkout master
これはあなたに非常に明確な歴史を与え、あなたが削除ジャンクはまだ周り
master
|
v
A-B-C-D
\
E-F
^
|
old_master
どれさらにコミットが発散歴史につながるです...
master
|
v
A-B-C-D-G-H
\
E-F
^
|
old_master
だからEとFはあなたの「本当の」履歴を混乱させることはありませんが、あなたはいつもそれらに戻ることができます。あなたが最終的にもうそれらを必要としないと決めたら、あなたはただgit branch -D old_master
であり、彼らは痕跡なしでなくなっています。
なぜあなたはHEADでGitコミットのコピーを再生したいのですか?これを行う意味は何でしょうか? –
私は以前のコミットを台無しにしましたが、私はそれらを履歴として保持したいと思います。 – slimboy
保存したい特定の要素が 'E'と' F'ですか?なぜ、 'F'と' E'を元に戻してそれをやってみませんか?現在の「HEAD」を元に戻すことは決して衝突を起こさない。 –