塊を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-modediff-modeコマンドの多くを公開しませんmagit-revision-mode

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

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