mac create git visual-studio visual-studio-2015

create - Git(SSH) en Visual Studio 2015



ssh bitbucket (5)

Entonces, con Visual Studio 2015 recién lanzado, hay un vínculo mucho más integrado con git.

Sin embargo, la característica que parece faltar es git over SSH. Existen varios complementos para 2013 que permiten esta funcionalidad (es decir, GitExtensions) pero no puedo ver ninguno con 2015.

El complemento GitHub solo parece funcionar con GitHub y no con los repositorios git genéricos.

No estoy buscando una opinión de cuál es mejor, solo algunos ejemplos o artículos para ver si alguien ha conseguido que Git + SSH funcione en Visual Studio 2015.


Aquí hay algunas instrucciones básicas para Visual Studio Update 2 y Update 3. Consulte el enlace en la publicación de BP para las cosas básicas, por ejemplo, necesitará:

  • CMake (utilicé 3.5.2)
  • libssh2 (utilicé 1.7.0)
  • fuente libgit2 (obtenga la fuente de VS 2015 como se indica en el enlace de BPas)

Build libssh2

  1. Usé libssh2 1.7.0. Puedes usar versiones anteriores, pero no, ya que necesitarás solucionar algunos problemas de compilación en VS2015.
  2. Haz lo siguiente:

    cd <libssh2 root dir> (e.g. wherever you extracted the source to) mkdir build && cd build cmake -DCRYPTO_BACKEND=WinCNG -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF ..

  3. Abra el libssh2.sln resultante en el directorio de compilación

  4. Establezca el tipo de compilación en "Liberar" (¡esto es importante!)
  5. Edite el proyecto libssh2 y establezca el tipo de llamada en __stdcall (p. Ej. / Gz)
  6. Reconstruya todo, si tiene éxito, la lib resultante estará en build / src / Release / libssh2.lib

Construir libgit2

  1. Haz lo siguiente:

    cd <libgit2 source dir> (e.g. this is wherever you extracted the libgit2 source you got from VS2015''s extensions directory, see BPas'' link for details) mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DSTDCALL=ON -DSTATIC_CRT=OFF -DUSE_SSH=OFF -DLIBSSH2_FOUND=TRUE -DLIBSSH2_INCLUDE_DIRS=<libssh2 root dir>/include -DLIBSSH2_LIBRARIES=<libssh2 root dir>/build/src/Release/libssh2.lib ..

  2. Abra el libgit2.sln resultante en el directorio de compilación

  3. Establezca el tipo de compilación en "Liberar"
  4. Opcional: Patch src / transports / ssh.c para admitir la autenticación de clave SSH RSA, en la función request_creds (alrededor de la línea 444):

    if (!t->owner->cred_acquire_cb) { no_callback = 1; } else {

    con:

    if (!t->owner->cred_acquire_cb) { if (user) { const char *val = NULL; val = getenv("USERPROFILE"); if (val) { char *szprivfilename = malloc(strlen(val) + 128); char *szpubfilename = malloc(strlen(val) + 128); strcpy(szprivfilename, val); strcat(szprivfilename, "/.ssh/id_rsa"); strcpy(szpubfilename, val); strcat(szpubfilename, "/.ssh/id_rsa.pub"); git_cred_ssh_key_new(&cred, user, szpubfilename, szprivfilename, ""); free(szprivfilename); free(szpubfilename); } if (!cred) { giterr_set(GITERR_SSH, "git_cred_ssh_key_new failed to initialize SSH credentials"); return -1; } } else { no_callback = 1; } } else {

    Nota: este parche fue tomado de uno de los comentarios en la publicación de Randomswdev, parece funcionar bien a partir de mis pruebas limitadas.

  5. Rebuild All, la salida es git2.dll, reemplace libgit2-msvc.dll en su directorio de extensiones de Visual Studio 2015



No. Visual Studio 2015 (RTM) no es compatible con SSH para controles remotos Git. Esto es cierto incluso con repositorios GitHub que utilizan el complemento GitHub (que, en este momento, utiliza el mismo mecanismo de conexión para repositorios Git que cualquier otro repositorio Git que utilice Team Explorer).

Esto es lamentable, pero hay un puñado de razones por las que aún no está disponible: la respuesta corta es que, en nuestra opinión, proporcionar SSH de manera deficiente o insegura es peor que no proporcionar SSH en absoluto, y nos gustaría tener mucha confianza en que cualquier implementación de SSH que proporcionemos es de alta calidad.

Dicho esto, estamos trabajando en ello y avanzando. Microsoft va a comenzar a incluir OpenSSH en Windows (y es un patrocinador de ese proyecto muy bueno). Sin embargo, no puedo hacer predicciones sobre cuándo podría haber soporte disponible.

La extensión GitHub es de código abierto, por lo que es posible que pueda utilizar un mecanismo de conexión diferente y comience a admitir SSH antes del soporte central de Git en Team Explorer.


Solía ​​haber tonterías sobre agregar tu git al estudio visual usando el git bash. A pesar de que agregar funcionaría, crear commits también era una opción, pero sincronizarlos requeriría git bash. Entonces esto sería un poco inútil.