Git GUIでは、差分の一部を選択して、それらの行またはチャンクだけをステージングできます。ファイル内の変更された行をロールバックする場合のように、どのように反対を行うでしょうか。通常、これらは偶発的な空白の変更です。元に戻したいのですが、同じファイルの他の部分をステージング/コミットします。
5 に答える
必要なパーツをステージングしてから、ステージングされていない変更git add -p
を破棄(git checkout -- filename
)します。
Git1.6.5以降のアップデート
バージョン1.6.5では、Gitは-p/--patch
フラグを使用してチェックアウトすることを学習しました。を使用すると、チャンクを1つのステップで破棄できますgit checkout -p -- filename
。
ドキュメントから:
<tree-ish>(または指定されていない場合はインデックス)と作業ツリーの違いでハンクをインタラクティブに選択します。選択されたハンクは、作業ツリーに逆に適用されます(<tree-ish>が指定されている場合は、インデックス)。
これは、git checkout -pを使用して、現在の作業ツリーから編集を選択的に破棄できることを意味します。
Git Guiでは、
- 不要な変更を含むファイル全体をステージングします
- 元に戻したいライン/ハンクのステージングを解除します
- [ステージングされていない変更]ペインでファイルを選択し、[コミット]- > [変更を元に戻す]を選択して、そのファイルに対するすべての(ステージングされていない)変更を元に戻します。
Git Guiの場合:まず、[再スキャン]をクリックして、変更されたファイルをスキャンします。次に、ファイル名の左側にあるアイコンをクリックして、コミットのすべての変更をステージングします。次に、デバッグ行を右クリックして、[コミットからの行のステージング解除]を選択します。
上記の情報: http: //nathanj.github.com/gitguide/tour.html
私git stash -p
はこの目的のために使用します。作業ツリーから削除された変更を含むスタッシュを作成するという副作用があります。これは、変更をすばやく復元するのに役立つ場合があります。
Git 2.24以降、Git GUIは、ステージングと同様に、コンテキストメニューに[ハンクを元に戻す]および[行を元に戻す]オプションを備えています。あなたも素晴らしい追加である「最後の復帰を元に戻す」ことができます。
この機能を追加したコミットは次のとおりです: https ://github.com/git/git/commit/62bd99934bb2b1a07f786fdf9b94d7b692768e30