web-dev-qa-db-ja.com

対話的にgitで特定のハンクをステージング解除するにはどうすればよいですか?

Gitで、インデックスにステージングされた同じファイルのハンクが2つある場合、それらの1つを対話的にアンステージングするにはどうすればよいですか?

ファイル全体のステージングを解除し、保持したいハンクを再ステージングする方法、または作業コピーへの変更を手動で元に戻し、それらの元に戻した変更をインタラクティブに追加する方法はありますか?

101
Andrew Grimm

git reset --patch filenameをお試しください。 documentation によると、これはgit add --patchの逆を行う必要があります。短い形式-pも両方のコマンドで機能します。

131

git guiは、ハンクまたはラインをインタラクティブにステージングまたはステージング解除するための適切なGUIを備えています。よりきれいな/より良いGUIクライアントがありますが、git guiは軽量の組み込み型クロスプラットフォームです(lin、win、mac)。

https://git-scm.com/docs/git-gui

ハンクを右クリックするだけで、ステージング/アンステージングできます。線の場合は、まず線を強調表示してから右クリックします。

1
wisbucky

GitX には、ファイルのチャンクのステージングを解除するための素晴らしいUIがあります。 enter image description here

公式クライアントはしばらくメンテナンスされていませんが、一部のサークルではより多くの機能を備えた GitHubでのフォーク が人気です。 ( それについてのブログ投稿

0
John Douthat