以前のコミットにリセットファイルを取得したいが、現在のコミットを維持したい。だから私がそうするなら:
git init
touch 1; git add 1; git commit -m "1"
touch 2; git add 2; git commit -m "2"
touch 3; git add 3; git commit -m "3"
これにより、3つのコミットが生成されます。コミット#3を継続したいのですが、ステージをコミット#2の状態にリセットします。私は次のことを試みました:
git reset --(hard|soft|mixed|merge|keep)
git checkout
git revert
したがって、いくつかの魔法のコマンドの後blah
、次の結果が必要です。
git log
HEADがまだコミット#3にあることを示していますls .
は、ファイル1
と2
ファイルシステムのみがあることを示しています。git diff
またはgit diff --cached
、ファイル3
が削除されたことを示します。私はできますgit reset --hard <hash-2>
が、これはHEAD
コミット#2に移動します。
git revert HEAD -n
with-n
または--no-commit
itは、作業ツリーとインデックスの変更を元に戻しますが、コミットは作成しません。HEAD
他の同等のcommit-ishに置き換えることができます。元に戻したものをコミットする場合は、を実行する必要がありますgit commit
。
いくつかの連続したコミットを元に戻したい場合、たとえばコメントのケースを取り上げます。
git revert HEAD~3..HEAD -n
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加