VSCodeでファイルにいくつかの変更をコミットできますが、他の変更はコミットできませんか?


139

VSCodeはgit統合に優れていますが、部分的なコミットを行う方法が見つかりません。基本的に、ファイル内の特定の変更を選択し、ファイル全体をステージングせずにステージングできるようにしたいと考えています。この機能は、git CLI、Githubネイティブアプリ、Atomプラグインでサポートされています。

ほとんどの場合、チケットを開く前に、何かを見逃していないことを確認します。

回答:


212
  • ソース管理ビューを開き、変更されたファイルをクリックして比較を開きます。

  • ステージングするラインを選択します。

  • 次に[...]をクリックしますStage Selected Ranges

ここに画像の説明を入力してください


45
私のように他の誰かが混乱した場合に備えて:このスクリーンショットは、左側のgitパネルの上部では···なく、エディターの右上隅のを参照してい···ます。
厄介な2017年

4
これがエラー「Git:Illegal value forline」を返す場合、これはGitHubで何度か報告されていますが、まだ修正されていません。その場合は、「インラインビュー」を切り替えるだけで機能します。出典
Marc.2377

2
@Dimitrisで述べたように、このコマンドはコマンドパレットにもあるため、ソース管理ビューにいる必要はありません。
eatcrayons 2018

2
これは行全体をステージングすることに注意してください。行の一部をステージングする場合はget add -i、インタラクティブな編集に戻っていると思います...
Zarepheth

97

thisこの投稿のすべてをgifで要約します。

  1. この機能を使用するには、ソース管理ビューにいることを確認してください
  2. コードの範囲を選択
  3. ···エディターの右上隅(···左側のgitパネルの上部ではなく)で開く
  4. COMMAND (⌘)+ K+ COMMAND (⌘)+ Sを押してキーボードショートカットを開きrange、このアクションのキーボードショートカットを検索して設定することもできます。

VSCode範囲選択コミット

平和!✌️


削除された行を選択するのは難しい
duXing

45

更新:2017年10月:2017年10月の最新のVSCode(バージョン1.18)では、git CLIを使用するのと同じように、特定の行を実際に簡単にステージングできますgit add -p。横から編集した行をクリックするだけで、差分を確認して適用できます。

保留中の変更を表示し、エディターで部分的なコミットを実行する


5
ただし、不足しているものは2つあります。ハンクを分割したり、ハンクを手動で編集したりすることはできません... :(
Robert Koritnik

12

このオプションはパレットに移動されました:

shift + command + Pおよび「ステージ選択範囲」と入力します


vimモードでは動作しないようです。
baxx

@baxxなぜそれを期待しますか?
tejasvi88

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