23

新しいファイルをいくつかのコミットに分割したい場合はgit add -N <file>git gui. ただし、ステージング中に間違いを犯した場合、git guiそれは新しいファイルであるため、個々の行をステージング解除できません (これはバグのように思えます)。もちろん、いつでもファイル全体のステージングを解除して最初からやり直すことができますが、より効率的な方法があるかどうか疑問に思っています。

を使用してgit 1.7.5います。


明確にするために、この質問は新しい別名未追跡ファイルに固有のものです!

4

4 に答える 4

9

コマンド ラインから次のように入力します。

git reset -p

これにより、ハンクを管理するための標準のコマンドライン インターフェイスを使用して、インデックスからハンクを選択的にステージング解除できます。これは の反対ですgit add -p

アップデート

ファイルが新しい場合、異なるハンクを選択的にステージングすることはできないようです。git-gui と標準の git hunk エディターの両方がこれを許可していないことを考えると、おそらく不可能です。

于 2012-06-13T15:07:32.960 に答える
1

you を使用fugitiveすると、簡単に行うことができます。コマンドを呼び出して:Gdiffから、必要なものをステージングおよびステージング解除するだけです。インデックス ファイルを直接編集することもできます。もちろん、このソリューションでは、かなり慣れている必要がありvimますvimdiff...

于 2012-06-13T14:21:27.857 に答える
1

同じ問題に遭遇しました。新しいファイルをコミットしたばかりで、そのファイルのいくつかの行をアンステージして、それらを別のコミットとして持ちたいと思っていました。私が解決した解決策は次のとおりです。

  • 新しいファイルを追加するコミットから開始します
  • ソース ファイルでステージングを解除したい行を削除し、それらの変更をステージングして、git commit -m 'REVERTME'
  • その最新のコミットを元に戻す新しいコミットを作成します。git revert HEAD
  • 最初の新しいコミットに使用git rebase -iし、オプションで元に戻すコミットに使用します。fixupreword
于 2013-10-01T10:42:59.573 に答える