特定のコミットを元に戻す最も簡単な方法は次のとおりです。
- 頭の中や頭の中ではない
- リモートにプッシュされました。
最新のコミットでない場合は、
git reset HEAD
動作しません。そして、それはリモートにプッシュされているので、
git rebase -i
と
git rebase --onto
リモートで問題が発生します。
もっとそう、私は本当に歴史を変更したくありません。悪いコードがあった場合、それは履歴にあり、見ることができます。私はそれを作業コピーに入れたいだけで、逆マージコミットを気にしません。
言い換えると、Gitは次のsvnコマンドに相当します。
svn merge -r 303:295 http://svn.example.com/repos/calc/trunk
これは、新しいコミットとして、これらのリビジョンのすべての変更を逆マージすることにより、295から302へのすべての変更を削除します。
svn merge -c -302 ^/trunk
もちろん、302コミットを元に戻すには、それぞれのコミットからの変更を逆マージする別のコミットを追加します。
Gitでの操作はかなり単純で、かなり一般的なユースケースである必要があると思いました。アトミックコミットのポイントは他に何ですか?
ステージングスタッシングがあり、コミットが完全にアトミックであることを確認するために、これらのアトミックコミットの1つ以上を簡単に元に戻すことができませんか?