塊をmagitで分割する


81

非常に近くに(したがって同じハンクの一部である)2つの編集があり、別々にコミットしたいと思います。magit内からハンクを分割することは可能ですか?

回答:


127

Ctrl+Space(C-SPC)でマークを正しく設定すると、magitは選択した部分のみをコミットします。


私は常にリージョンの下部にマークを設定し、リージョンをステージングまたはステージング解除するためにポイントを上部に移動します。これは、逆に行うと問題が発生したためです(詳細は思い出せません)。過去。YMMV。
— phils 2012年

2
Re:私の前のコメント、私は最近この理由を読みました。それは、リージョンをアン/ステージングするとき、ポイントはあなたが行動しているリージョン内になければならないということです。もちろん、C-x C-x逆に行った場合は、ポイントとマークを交換するために使用できます。
— phils 2012

トランジェントマークモードを使用すると、動作が異なりますか?私はいつも上から下を選択し、問題がなかったからです。
— Dominik Honnef 2012

3
マーク(C-SPC)を設定するだけでは不十分でした。をC-SPCアクティブにするには、もう一度押す必要がありましたtransient-mark-mode。
— Vebjorn Ljosa 2014

1
明確にするために:magitは選択されたものだけをコミットします。どのように選択したかは関係ありません。たとえば、Shift + <arrows>ハンクの一部を選択し、を押しsて選択した部分をステージングするために使用します。
— jfs 2015

61

を使用-し+て、diffのハンクの範囲を増減(および0リセット)することもできますが、ドミニクの答えは知っておくべき最も重要なものです。


これは私には機能しません、これは新しいバージョンのmagitで削除されましたか、それともこれは私のセットアップに特有のものですか?
— Mike HR

Mike HR:magit-statusバッファーにいると仮定すると、これは引き続きAFAIKで機能するはずです。
— phils 2015年

1
はい、私は間違っ@@ていました。私が試みていたように、ハンクの内側ではなく、開始行(ハンク情報行)で+または-を押す必要があります。
— Mike HR

0

Magitは再利用しますが、VCパッケージのようにdiff-mode、diff-modeコマンドの多くを公開しませんmagit-revision-mode。

たとえば、diff-split-hunk通常はC-c C-sにあるを呼び出すことができますdiff-mode。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.