1. ホーム
  2. git

[解決済み] GITで部分的にリバートすることはできますか?

2022-04-20 17:02:59

質問

複数ファイルのコミットで、1つのファイルまたはファイルの特定の変更のみを取り消すことは可能ですか?

全文表示 私はたくさんのファイルをコミットしました。何度かコミットした後、名前を伏せておく人 (JACK!!) が自分のリポジトリにファイルをコピーして、いくつかのファイルをコミットし、私が行った変更のいくつかを上書きしました。私は上書きされた一つのファイルをリバートしたいのですが、もっといい方法は、そのファイルの中の二つの変更をリバートすることです。これは、プルされてプッシュされたので、別のリバートコミットにする必要があります。

解決方法は?

no-commit」オプションを追加することで、新しいコミットを作成せずにコミットを取り消すことができます。これにより、ステージング・エリアにすべての戻されたファイルが残されます。そこからソフトリセットを行い、本当に必要な変更を追加していくのです。ワークフローの例です。

git revert <sha-of-bad-commit> --no-commit
git reset   // This gets them out of the staging area
<edit bad file to look like it should, if necessary>
git add <bad-file>
git checkout . // This wipes all the undesired reverts still hanging around in the working copy
git commit