5

私は新しい機能に取り組んでおり、コードが完全ではない/安定していないため、コミットせずにブランチに変更を加えました。しかし、変更したコードの一部を改善するためにリファクタリングを行うことができるかもしれないことに気付きましたが、リファクタリングが適切に機能するかどうかはわかりません。そのため、変更を一時的に保存し、現在の状態でファイルの編集を続けたいと考えています。そして、リファクタリングがうまくいけば、すべて問題なくコーディングを続行でき、すべてのコードが終了したらコミットできます。しかし、リファクタリングが機能しない場合は、リファクタリングの変更を回復ポイントまで元に戻したい (ただし、これまでに行った変更は保持する)。

git stashすべての変更を元に戻したくないし、変更作業を続けて、その変更の数行だけを変更したいので、作成したくありません。私が今まで知っている唯一の方法は、「リファクタリングを試すための偽のコミット」のような名前のコミットを作成することですが、それは適切な方法ではないと思います。

4

6 に答える 6

4

最も簡単なのは stash を使用することです....しかし、1 つのコマンドではなく 2 つのコマンドを使用します。

git stash save "blah blah"
git stash apply # get the changes back, keep them on the stash as well
于 2019-07-31T14:47:45.917 に答える
4

実際、Git ステージはユース ケースに適したオプションです。git addコミットに表示したいすべての変更済みファイルを作成できます (今すぐコミットする必要がありました) 。次に、テストのリファクタリングに取り組み続けます。これは作業ディレクトリ内のファイルにのみ影響し、ステージには影響しません。

テスト リファクタリングからの変更を保持することにした場合は、変更git addしたすべてのファイルに対してもう一度ラウンドを実行します。作業ディレクトリへの変更を破棄する場合は、 を使用git checkout --してそれらのファイルをリセットします。

あなたのユースケースは、Git ステージが存在する理由の 1 つです。

于 2019-07-31T14:47:55.423 に答える