Git Fugitive come git aggiungere un pezzo di codice visivamente selezionato


14

Vorrei sapere se potevo selezionare del codice in modalità visiva e git addquesto?

Ho controllato con fugitive.vim ma non ho trovato il modo di farlo.

È possibile ? O c'è qualche altro plugin per farlo?

Risposte:


14

Potrebbero esserci altri modi, ma questo approccio ti consente di fare di più che aggiungere un pezzo, motivo per cui tendo a usarlo abbastanza.

  1. Esegui :Gdiffcomando. Si aprirà una divisione con la versione del file corrente che è attualmente nell'indice a sinistra / in alto nella finestra originale.

  2. Mentre sei nella finestra originale (a destra o in basso), esegui la selezione visiva delle modifiche che desideri git add.

  3. Esegui :diffputcomando, che può operare su un intervallo. (la dpchiave non funziona in modalità Visual.)

  4. Chiudi quella seconda finestra salvando le modifiche per aggiornare il file nell'indice. Qui puoi modificarlo come preferisci prima di salvare, non è necessario che corrisponda esattamente alla versione originale o nuova del file.

Tieni presente che :diffputpotrebbe non darti sempre quello che ti aspetteresti a seconda della struttura delle modifiche (soprattutto se stai commettendo solo una parte del blocco contiguo delle modifiche). Quindi non dimenticare di convalidare il commit. Nella maggior parte delle situazioni pratiche funziona bene però.


7

Vimcasts ha una grande serie su Fugitive.vim . L'episodio Fugitive.vim - lavorare con l'indice git sarebbe il più utile per la tua domanda.

È possibile utilizzare :Gdiffper mettere in scena solo parti di un file. In esecuzione :Gdiffti mostrerà il file corrente "diff-ed" con lo stage / indice. Si può semplicemente utilizzare i comandi diff di Vim ( dp, do, :diffpute :diffget) per spostare il pezzo alla fase / index. Quindi scrivi il file stage / index come faresti con qualsiasi altro buffer, :w/ :x.


Sto usando :Gstatus+ Dper fare lo stesso con il fuggitivo. In questo modo posso anche scegliere il file su cui opero nell'elenco dei file che sono stati modificati.
Luc Hermitte,

6

Come hai chiesto in particolare sulle soluzioni che utilizzano altri plug-in, noterò che puoi anche mettere in scena selezioni visive usando vimagit , che è un plug-in Git (basato sul popolare plug-in Magit dell'altro editor ) incentrato sulla visualizzazione, la gestione temporanea e il commit delle modifiche.

Per mettere in scena una selezione visiva usando Vimagit:

  1. Esegui il :Magitcomando per aprire un nuovo buffer che visualizza tutti gli hunk modificati nel tuo repository (non solo in un file),

  2. Individua le linee che desideri mettere in scena ed esegui la visualselezione,

  3. Premere la mappatura "palcoscenico": S.


6

Hunk completi o parziali dello stage con vim-gitgutter

  1. Hunk completo da palcoscenico

    • <Leader>hs o
    • :GitGutterStageHunk
  2. Stage parte di un pezzo solo aggiunte (dall'8 / 2019)

    • Modalità visiva

      • {Visual}<Leader>hs
      • :'<,'>GitGutterStageHunk
        ( '<,'>sono come sempre inseriti per te)
    • Gamma

      • :42,45GitGutterStageHunk
  3. Parte dello stage di qualsiasi pezzo tramite finestra di anteprima (dall'8 / 2019)

    • Visualizza l'anteprima del pezzo, ad es <Leader>hp
    • Passa alla finestra di anteprima, ad es :wincmd P
    • Elimina le linee che non vuoi mettere in scena
    • Metti in scena le linee rimanenti, ad es. <Leader>hsO:GitGutterStageHunk

Aggiornato: 17.8.2019 a causa di recenti commit bc1d28d e b036fcf


Ha chiesto vim-fuggitivo, non vim-gitgutter
giggi__
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.