2015-05-04 13 views
133

Quando si utilizza git sulla riga di comando, mi chiedo se è possibile utilizzare Visual Studio Code come editor predefinito, ad esempio quando si creano commenti di commit e guardando un diff di un file dalla riga di comando.Come utilizzare Visual Studio Code come editor di default per Git

Capisco che non sarà possibile utilizzarlo per fare unioni (almeno al minuto) ma qualcuno sa se è possibile usarlo per guardare i diff e, in tal caso, quali opzioni della riga di comando sarebbe richiesto nel file .gitconfig per farlo accadere?

UPDATE 1:

ho cercato un approccio simile a quello che ho fatto per Notepad++ in the past, cioè

#!/bin/sh 

"c:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*" 

e usati:

#!/bin/sh 

"C:\Users\gep13\AppData\Local\Code\app-0.1.0\Code.exe" "$*" 

Ma questo si traduce in una messaggio di errore:

C:\temp\testrepo [master +1 ~0 -0]> git commit 
[8660:0504/084217:ERROR:crash_reporter_win.cc(70)] Cannot initialize out-of-process crash handler 
Aborting commit due to empty commit message. 
C:\temp\testrepo [master +1 ~0 -0]> 

Il codice si apre correttamente, con il contenuto previsto, ma non attende la risposta, ad esempio facendo clic su Salva e chiudi la finestra per tornare al prompt.

UPDATE 2:

ho appena sentito indietro da uno degli sviluppatori che lavorano su VSCode. Assomiglia a questa funzionalità attualmente non è supportata :-(

https://twitter.com/IsidorN/status/595501573880553472

Se siete interessati a vedere questa funzione vengono aggiunti, si potrebbe desiderare di pensare di aggiungere i vostri voti qui:

http://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/7756482-support-git-configure-diff-and-merge-tools

UPDATE 3:

sono stato reliably informed che questa funzione è stata ripresa da tè VSCode m, quindi non vedo l'ora di una futura versione che lo includerà.

AGGIORNAMENTO 4:

Grazie a @ f-boucheros commento qui sotto, sono stato in grado di ottenere codice VS lavorando come l'editor predefinito per commettere i commenti, rebase, ecc mi piace ancora di vedere se è possibile utilizzarlo anche come strumento diff.

UPDATE 5:

Come per la risposta accettata per la domanda, questo è ora possibile utilizzando la versione V1.0 di codice.

risposta

216

Nella versione più recente (v1.0, uscito nel marzo 2016 ), si è ora in grado di use VS Code as the default git commit/diff tool.Citato dal documentazioni:

  1. Make sure you can run code --help from the command line and you get help.
    • if you do not see help, please follow these steps:
      • Mac: Select Shell Command: Install 'Code' command in path from the Command Palette.
      • Windows: Make sure you selected Add to PATH during the installation.
      • Linux: Make sure you installed Code via our new .deb or .rpm packages.
  2. From the command line, run git config --global core.editor "code --wait"

Now you can run git config --global -e and use VS Code as editor for configuring Git. enter image description here Add the following to enable support for using VS Code as diff tool:

[diff] 
    tool = default-difftool 
[difftool "default-difftool"] 
    cmd = code --wait --diff $LOCAL $REMOTE 

This leverages the new --diff option you can pass to VS Code to compare two files side by side.

To summarize, here are some examples of where you can use Git with VS Code:

  • git rebase HEAD~3 -i allows to interactive rebase using VS Code
  • git commit allows to use VS Code for the commit message
  • git add -p followed by e for interactive add
  • git difftool <commit>^ <commit> allows to use VS Code as diff editor for changes
+13

Ho trovato anche addinng '--new-window' al comando per essere utile. In questo modo l'operazione git si aprirà in una nuova finestra. – jrotello

+0

Questa è la risposta è grande. Unico problema è la finestra del codice si apre sotto la mia finestra del prompt dei comandi corrente. (codice in esecuzione versione 1.4.0) –

+2

Quando parliamo di _command line_ intendiamo 'Ctrl + Shift + P'? Il mio non funziona (non è disponibile 'code --help') e non capisco cosa significa:" Assicurati di aver selezionato Aggiungi al PERCORSO durante l'installazione "Cosa devo fare per controllarlo? Qualcuno può aiutarmi? –

1

Non sono sicuro che sia possibile farlo, tuttavia è possibile provare queste aggiunte nel file gitconfig.

Provare a sostituire il kdiff3 da questi valori per puntare all'eseguibile del codice visivo dello studio.

[merge] tool = kdiff3 [mergetool "kdiff3"] path = C:/Program Files/KDiff3/kdiff3.exe keepBackup = false trustExitCode = false

+0

Come ho detto nella mia interrogazione, non credo che la fusione sarà supportato, come Non credo che Visual Studio Code sappia come farlo, ho il sospetto che sarà solo in grado di fare diff e commit di messaggistica. –

1

ho aperto il mio .gitconfig e modificato con:

[core] 
    editor = 'C:/Users/miqid/AppData/Local/Code/app-0.1.0/Code.exe' 

che ha fatto per me (io sono su Windows 8).

Tuttavia, ho notato che dopo ho provato un arbitrario git commit che nel mio Git Bash console vedo il seguente messaggio:

[9168:0504/160114:INFO:renderer_main.cc(212)] Renderer process started 

sicuri di quello che potrebbero essere le conseguenze di questo.

+0

Avevo anche provato che, tuttavia, stavo diventando "fatale: file di configurazione errato riga 14 in C: \ Users \ gep13/.gitconfig", quindi ho notato che avevo barre rovesciate, in cui sono presenti barre. Cambiare quelle svolte ha funzionato, ma come te sto vedendo l'output del "processo di rendering avviato", che in realtà viene pubblicato due volte per me, quindi mostra: "[11956: 0504/091108: ERRORE: ipc_channel_win.cc (136)] pipe errore: 109 "ma il commit sembra aver funzionato. –

+0

Ah, interessante. Sembra che il mio suggerimento funzioni solo se hai codice completamente chiuso _ (non molto conveniente!) _ Prima di effettuare il commit. Ho riscontrato lo stesso errore che hai segnalato nel tuo aggiornamento se Code è aperto. – miqid

+0

davvero interessante. Credo che sia qui che entra in gioco il flag -multiInst per Notepad ++. Mi chiedo se c'è qualcosa di simile per VSCode. –

2

GitPad imposta l'editor di testo corrente come editor predefinito per Git.

Il mio editor predefinito per i file .txt in Windows 10 è Visual Studio Code e l'esecuzione di GitPad una volta l'ha reso l'editor predefinito per Git. Non ho riscontrato i problemi menzionati nella domanda (Git aspetta che la finestra VS Code sia chiusa nel mio caso).

(Il link per il file .exe non ha funzionato per me, potrebbe essere necessario compilare il sorgente da soli.)

+0

Grazie! Darò questa prova! :-) –

+0

Che cosa hai indicato come editor predefinito? Ho provato a utilizzare ciò che è descritto qui: http://www.donovanbrown.com/post/2015/07/07/how-to-set-visual-studio-code-as-your-default-editor Ma ciò non sembra che voglia lavorare. Non voglio davvero puntare a un exe specifico, poiché questo cambierà con l'aggiornamento del Codice. –

+1

@Gary, non ho dovuto puntare un file specifico, il codice era nella lista quando ho fatto il 'clic destro'>' Apri con'> 'ha scelto un'altra app'. Mi aspetterei che [si registri] (https://msdn.microsoft.com/en-us/library/windows/desktop/ee872121 (v = vs.85) .aspx) durante l'installazione (e aggiorni il registro ad ogni aggiorna in modo che la shell possa trovarlo) ma non ho trovato nulla di diverso dalla voce di menu contestuale "Apri con codice" nel registro. Quindi davvero non ho una risposta più chiara per questo, mi dispiace. –

0

ho creato codice Visual Studio come predefinito per aprire file con estensione txt. E dopo ho usato un semplice comando: git config --global core.editor "'C:\Users\UserName\AppData\Local\Code\app-0.7.10\Code.exe\'". E tutto funziona abbastanza bene.

17

Per quello che ho capito, VSCode non è più in AppData.

in modo da impostare l'editor predefinito git eseguendo quel comando in una finestra del prompt dei comandi:

git config --global core.editor "'C:\Program Files (x86)\Microsoft VS Code\code.exe' -w" 

Il parametro -w, --wait è aspettare per la finestra per essere chiuso prima di tornare. Il codice di Visual Studio è basato su Atom Editor. se hai anche atom atom, esegui il comando atom --help. Vedrai che l'ultimo argomento nell'aiuto è aspettare.

La prossima volta che si esegue il git rebase -i HEAD~3 verrà visualizzato il codice di Visual Studio. Una volta che VSCode è chiuso, Git riprenderà il comando.

Nota: La mia versione corrente di VSCode è 0.9.2

spero che di aiuto.

+0

Grazie! Qual è il significato del '-w' e dove lo hai trovato documentato? –

+1

Buon punto. Viene da Atom -w è per Wait. Ho modificato la mia risposta. –

+0

L'ho impostato e sono felice di dire che funziona. Se potessi farlo funzionare ora come Visual Studio Code facendo anche la diffusione dei file, sarebbe fantastico! :-) –

1

Buone notizie! Al momento della stesura, questa funzione è già stata implementata nella versione 0.10.12-internal ed eseguita tramite 0.10.14-addetti ai lavori. Quindi lo avremo nella prossima versione 1.0 Release of VS Code.

Attuazione Rif: Implement -w/--wait command line arg

+0

puoi commentare come sarei in grado di usare il visualizzatore di diff in VSCode per visualizzare le differenze in git? –

0

Esegui il comando nel Terminale Mac App

git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code" 
+0

Questo non funziona come si ottiene il messaggio di errore: Interruzione del commit a causa del messaggio di commit vuoto. Dovrà essere aggiunto un flag di attesa. Ad esempio - attesa. – Belfield

Problemi correlati