間違ってブランチにファイルをコミットしたとき、私は通常git reset --hard HEAD~1
を使用します。しかし、この方法を使用すると、一般にコミットされたすべてのファイルが失われます。編集したファイルを失うことなく、コミットをリセットする方法はありますか?コミットされていないファイルを失うことなくリセット
14
A
答えて
25
--hard
を使用しないでください。代わりに--soft
を使用してください。
あなたは、最新のを削除したい場合はこのようにあなたがしたいコミット:
git reset --soft HEAD^
5
アレックスは非常に正しいですが、私は別のシーケンスをしようとする誘惑されることがあります。
私が望んでいた場合
:私は既存のブランチにコミットしたい場合git branch newbranch
git reset --hard HEAD^
:まだツー生まれするブランチにコミット
git checkout otherbranch
git cherry-pick firstbranch
git checkout firstbranch
git reset --hard HEAD^
アレックスの答え
git reset --soft HEAD^
git checkout otherbranch
git commit -am "Message"
ノートの完全な例「フロート」にしようと、他のブランチへの変更が競合に起因する障害が発生した場合、最後の例では不十分失敗します。競合解消のためには、stash/checkout/applyが必要です。
+1
すばらしい答え!私はこれが最後のコミットで行われた変更を投げ捨て、残りの半分は残していることだと思います。その場合は、コミットを破棄し、変更を追加し直してください。この場合、 'git add --interactive'も便利です! – Alex
関連する問題
- 1. 変更がコミットされていないというGitコミット
- 2. チェックアウトとリセット後にコミットされていない作業を復元する
- 3. Git、コミットとコミットの間のファイルのコピーを取らないでください
- 4. カーソルを失うことなくdivをクリックしてください。CSS
- 5. Git:コミットされていない変更を元に戻して特定のファイルをリセットする
- 6. GITでコミットされていないファイルを復元する
- 7. コミットされていないディレクトリとファイルを復活させるには?
- 8. git rmを元に戻す方法。 -r - コミットされていない変更を失うことなくコマンドを実行できますか?
- 9. コミットされていないファイルとロードされていないファイルに対してGitの変更が行われていない
- 10. 親アクティビティを失うことなく新しいアクティビティを開く
- 11. 追加/コミットされていないファイルの復元
- 12. ピンボールターゲット - リセットしないでください
- 13. SQLAlchemyリレーションシップとコミットされていないオブジェクトの複雑さ
- 14. ユニティアニメーションパラメータトリガがリセットされない
- 15. タイマーがリセットされない
- 16. Gitチェックアウト - いくつかのファイルが選択されたファイル(複数可)をリセットしていないダブルダッシュ
- 17. webixリセットyAxisとリロードデータが正しく表示されない
- 18. 参考文献(タグ、支店など)を失うことなくGitの履歴にコミットを挿入してください
- 19. フィールドを失うことなくSplunkマップ
- 20. ロックされていないファイルが開いていることを確認してください
- 21. jqueryで高さを失うことなく高さをトグル
- 22. セッション変数がリセットされている - わからないところで
- 23. 変更を失うことなくすべての以前のgitコミットを取り除く方法
- 24. ブランチを以前のコミットにリセットし、変更/マージが正しくプッシュされたことを確認したい
- 25. Gitで最後のコミットを失うことなく前のコミットに戻るには?
- 26. MySQLで古い料金を失うことなく
- 27. コミットされていないデータベーストランザクションと自動インクリメント列
- 28. コミットされていない変更を覚えている
- 29. リセットなしでコミットに戻すことは可能ですか?
- 30. git:filter-branchがすでにコミットされているコミットになるか確認してください。
@cherrunまた、[Reset Demystified](http://git-scm.com/2011/07/11/reset.html)を読むことを検討してください。 – kostix
+1短く正確な答えです。要約すると、 'git reset --soft HEAD〜1' – VarunPandey