1. ホーム
  2. git

[解決済み] gitでコミットの一部を取り消す

2022-04-25 20:29:04

質問

gitの特定のコミットを差し戻したいのですが、どうすればいいですか? 残念ながら、私たちの組織はまだCVSを標準として使用しているので、私がCVSにコミットバックすると、複数のgitコミットが1つにまとめられます。 この場合、元のgitコミットを単一化したいのですが、それは不可能です。

のようなアプローチはあるのでしょうか? git add --patch を使えば、あるコミットのどの部分をリバートするかを決めるために差分を選択的に編集することができますか?

どのように解決するのですか?

を使用します。 --no-commit ( -n ) オプションを git revert を実行した後、その変更をアンステージし、次に git add --patch :

$ git revert -n $bad_commit    # Revert the commit, but don't commit the changes
$ git reset HEAD .             # Unstage the changes
$ git add --patch .            # Add whatever changes you want
$ git commit                   # Commit those changes

注意: git add --patch で追加したファイルは、元に戻したいファイルであって、残しておきたいファイルではありません。