回答:
試してみてくださいgit reset --patch filename。ドキュメントgit add --patchによると、これはの逆を行う必要があります。短い形式-pは両方のコマンドでも機能します。
git stash save --keep-indexして、現在の作業コピーの変更を保存およびリセットすることをお勧めします。次に、ファイルをリセットして、不要な変更を取り消すことができます。最初にファイルを一時的な場所にコピーすると、を使用diffして、元に戻した変更を保存できます。その後、ファイルを再び追加できます(不要な他の変更を隠しておいたため、インタラクティブな追加は必要ありません)。git stash pop古い変更を取り戻し、元に戻した変更diffを適用するために使用します。かなり扱いにくい... :-(
The short form -p also works for both commands...つまりgit reset -p filename?
git add -p filenameファイルから変更をgit reset -p filename選択的にステージングし、変更を選択的にアンステージングします。またgit checkout -p -- filename、ファイルから変更を選択的に破棄できるもあります。警告:のそれぞれaddとreset2の他を元に戻すために使用することができますが、あなたがこのフォームを使用している場合はcheckout変更を破棄し、あなたはそれを取り戻すことはできません。
git gui対話的にハンクまたはラインをステージングまたはステージング解除するための適切なGUIがあります。よりきれいな/より良いGUIクライアントがgit guiありますが、軽量、組み込み、クロスプラットフォーム(lin、win、mac)です。
https://git-scm.com/docs/git-gui
ハンクを右クリックするだけで、ステージング/ステージング解除できます。線の場合は、まず線を強調表示してから右クリックします。
GitXには、ファイルのチャンクのステージングを解除するための素晴らしいUIがあります。

公式クライアントはしばらくの間メンテナンスされていませんが、より多くの機能を備えたGitHubでの分岐がいくつかのサークルで人気があります。(それについてのブログ記事)
git gui「nice」という単語を使用するかどうか確信がありません;)