Git GUIでは、差分の一部を選択して、それらの行またはチャンクのみをステージングできます。ファイルの変更された行をロールバックする場合のように、私はどのように反対をしますか?通常、これらは偶発的な空白の変更ですが、元に戻したいが、同じファイルの他の部分をステージング/コミットします。
Git Guiの場合:最初に、[再スキャン]をクリックして、変更されたファイルをスキャンします。次に、ファイル名の左側にあるアイコンをクリックして、コミットするすべての変更をステージングします。次に、デバッグ行を右クリックし、[ステージングからコミット解除]を選択します。
必要なパーツをgit add -p
でステージングし、ステージングされていない変更を破棄します(git checkout -- filename
)。
Git 1.6.5以降のアップデート
バージョン1.6.5では、Gitは-p/--patch
フラグを使用してチェックアウトする方法を学びました。 git checkout -p -- filename
を使用すると、1つのステップでチャンクを破棄できます。
the docs から:
<tree-ish>(または、指定されていない場合はインデックス)と作業ツリーの違いから、対話的にハンクを選択します。次に、選択されたハンクが作業ツリーに逆に適用されます(<tree-ish>が指定されている場合は、インデックスが適用されます)。
これは、git checkout -pを使用して、現在の作業ツリーから編集を選択的に破棄できることを意味します。
Git Guiでは
出典: http://git.661346.n2.nabble.com/Revert-hunk-td4991128.html
私が使う git stash -p
この目的のために。これには、作業ツリーから削除された変更でスタッシュが作成されるという副作用があります。これは、すばやく復元するのに役立つ場合があります。
Git 2.24以降、Git GUIはステージングと同様に、コンテキストメニューに[ハンクを元に戻す]オプションと[行を元に戻す]オプションを備えています。あなたは素晴らしい追加である「Undo Last Revert」をすることさえできます。
この機能を追加したコミットは次のとおりです: https://github.com/git/git/commit/62bd99934bb2b1a07f786fdf9b94d7b692768e