Cómo usar el Código de Visual Studio como Editor Predeterminado para Git


Al usar git en la línea de comandos, me pregunto si es posible usar Visual Studio Code como editor predeterminado, es decir, al crear comentarios de confirmación, y mirar una diferencia de un archivo desde la línea de comandos.

Entiendo que no será posible utilizarlo para realizar fusiones (al menos en el minuto), pero ¿alguien sabe si es posible usar para mirar diff, y si es así, ¿qué opciones de línea de comandos sería requerido en el .gitconfig archivo para hacer esto ¿pasar?

ACTUALIZAR 1:

He intentado un enfoque similar a lo que he hecho para Notepad++ en el pasado , es decir,

#!/bin/sh

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

Y utilizado:

#!/bin/sh

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

Pero esto resulta en un mensaje de error:

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]>

El código se abre correctamente, con el contenido esperado, pero no está esperando la respuesta, es decir, haciendo clic en guardar y cerrando la ventana para volver al indicador.

ACTUALIZAR 2:

Acabo de recibir respuesta de uno de los desarrolladores trabajando en VSCode. Parece que esta funcionalidad actualmente no está soportada : - (

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

Si está interesado en ver que se agregue esta función, es posible que desee pensar en agregar sus votos aquí:

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

ACTUALIZAR 3:

He sido informé de forma fiable a que esta característica ha sido recogida por el equipo de VSCode, por lo que estoy deseando una versión futura que la incluya.

ACTUALIZAR 4:

Gracias a @f-boucheros comment a continuación, he podido hacer que VS Code funcione como el editor predeterminado para commit comments, rebase, etc. Todavía me gustaría ver si es posible usarlo como la herramienta de diferencias también.

ACTUALIZAR 5:

Según la respuesta aceptada a la pregunta, esto ahora es posible usando la versión V1.0 de código.

Author: Community, 2015-05-04

10 answers

En la versión más reciente (v1.0, publicada en Marzo de 2016), ahora puedes usar VS Code como la herramienta predeterminada de confirmación/diferencia de git. Citado de las documentaciones:

  1. Asegúrese de que puede ejecutar code --help desde la línea de comandos y obtendrá ayudar.
    • si no ve ayuda, siga estos pasos:
      • Mac: Seleccione Comando de shell: Instale el comando 'Code' en path desde el Comando Paleta.
      • Ventanas: Asegúrese de que ha seleccionado Añadir a la RUTA durante el instalación.
      • Linux: Asegúrese de haber instalado el código a través de nuestro nuevo .deb o .paquetes rpm.
  2. Desde la línea de comandos, ejecute git config --global core.editor "code --wait"

Ahora puedes ejecutar git config --global -e y usar VS Code como editor para configurar Git. introduzca la descripción de la imagen aquí Agregue lo siguiente para habilitar el soporte para usar Código VS como herramienta de diferencias:

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

Esto aprovecha la nueva --diff opción que puede pasar a VS Código a compare dos archivos uno al lado del otro.

Para resumir, aquí hay algunos ejemplos de dónde puedes usar Git con VS Código:

  • git rebase HEAD~3 -i permite rebase interactivo usando VS Code
  • git commit permite usar Código VS para el mensaje de confirmación
  • git add -p seguido de e para interactivo añadir
  • git difftool <commit>^ <commit> permite usar Código VS como editor de diferencias para cambios
 349
Author: rexcfnghk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-29 17:22:18

Por lo que entiendo, VSCode ya no está en AppData.

Así que establezca el editor de git predeterminado ejecutando ese comando en una ventana del símbolo del sistema:

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

El parámetro -w, --wait es esperar a que se cierre la ventana antes de regresar. Visual Studio Code está basado en Atom Editor. si también tiene atom instalado ejecute el comando atom --help. Verá que el último argumento en la ayuda es esperar.

La próxima vez que haga un git rebase -i HEAD~3 aparecerá el código de Visual Studio. Una vez que VSCode es cerrar entonces Git recuperará el liderazgo.

Nota: Mi versión actual de VSCode es 0.9.2

Espero que eso ayude.

 19
Author: Frank Boucher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-28 14:36:05

Necesita usar el comando:

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

Asegúrate de que puedes iniciar tu editor desde Git Bash

Si desea utilizar Código.exe con ruta corta, puede hacer esto agregando la siguiente línea a su.bash_profile:

alias vscode="C:/Program\ Files/Microsoft\ VS\ Code/Code.exe"

Y ahora, puedes llamarlo usando solo el comando vscode (o como lo llames)

Algo de información adicional:

La configuración agregará el código de Visual Studio a su % PATH%, por lo que desde la consola puede escribir 'code' para abrir VS Code on esa carpeta. Tendrá que reiniciar la consola después de la instalación para el cambio a la variable ambiental % PATH% a haga efecto.

 5
Author: IluxaKuk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-03 17:42:41

Abrí mi .gitconfig y modificado con:

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

Eso lo hizo por mí (estoy en Windows 8).

Sin embargo, me di cuenta de que después de probar un arbitrario git commit que en mi Git Bash consola veo el siguiente mensaje:

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

No estoy seguro de cuáles podrían ser las ramificaciones de esto.

 2
Author: miqh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-04 08:05:55

GitPad establece tu editor de texto actual como el editor predeterminado para Git.

Mi editor predeterminado para los archivos .txt en Windows 10 es Visual Studio Code y ejecutar GitPad una vez lo convirtió en el editor predeterminado para Git. No he experimentado los problemas mencionados en la pregunta (Git espera hasta que la ventana VS Code se cierre en mi caso).

(El enlace para el archivo .exe no funcionó para mí, es posible que deba compilar el código fuente usted mismo.)

 1
Author: Şafak Gür,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-06 10:24:25

¡Buenas noticias! En el momento de escribir este artículo, esta característica ya se ha implementado en la versión 0.10.12-insiders y se ha llevado a cabo a través de 0.10.14-insiders. Por lo tanto, vamos a tenerlo en la próxima versión 1.0 de VS Code.

Implementation Ref: Implement-w / wait wait command line arg

 1
Author: Wasif Hossain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-11 01:56:22

No estoy seguro de que pueda hacer esto, sin embargo, puede probar estas adiciones en su archivo gitconfig.

Intente reemplazar el kdiff3 de estos valores para apuntar al ejecutable de código de visual studio.

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

 0
Author: SJMan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-04 07:12:33

Configuré el código de Visual Studio como un valor predeterminado para abrir .archivo txt. Y luego usé el comando simple: git config --global core.editor "'C:\Users\UserName\AppData\Local\Code\app-0.7.10\Code.exe\'". Y todo funciona bastante bien.

 0
Author: Zidu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-23 20:53:57

Ejecute este comando en su aplicación Mac Terminal

git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code"
 0
Author: Mohammed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-28 07:20:51

En Windows 10 usando la edición 64bit insiders el comando debe ser:

Git config core núcleo global.editor " 'C:\Program Archivos \ Microsoft VS Code Insiders \ bin \ code-insiders.cmd ""

También puede cambiar el nombre de los 'code-insiders.código cmd "a".cmd 'en el directorio' Archivos de programa', de esta manera, ahora puede usar el comando 'code .'para empezar a editar los archivos en el . directorio

 0
Author: LuisCarlos Rodriguez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-17 18:02:34