Diferencias entre commit, commit y push, commit y sincronización

149

Estoy usando Visual Studio 2013, y me enfrento a 3 opciones para cuando confirmo mi código C #. Necesito una explicación de las diferencias entre cada una de las opciones con respecto a lo que sucede con mi repositorio local frente al repositorio de GitHub.

  • La opción 1 dice Comprometerse
  • La opción 2 dice Comprometerse y Empujar
  • La opción 3 dice Confirmar y sincronizar

No entiendo la diferencia entre las últimas 2 opciones. ¿Cuándo debo usar Commit and Sync en lugar de Commit and Push?

Alfred Waligo
fuente

Respuestas:

216
  1. Commit simplemente hará un registro de los cambios que haya realizado en su máquina local. No marcará el cambio en el repositorio remoto.
  2. Commit and Push hará lo anterior y lo enviará al repositorio remoto. Esto significa que cualquier cambio que haya realizado también se guardará en el repositorio remoto.
  3. Commit and Sync hace tres cosas. Primero, se comprometerá. En segundo lugar, realizará una extracción (toma la información actualizada del repositorio remoto). Finalmente, empujará.

Vea más de Microsoft aquí

camiblanch
fuente
Realmente no obtengo el "Comprometer y sincronizar" Primero, se comprometerá. En segundo lugar, realizará un tirón Finalmente, empujará. ¿Por qué se requiere push aquí cuando los cambios de código ya están confirmados en el repositorio remoto? (No hay cambios para push).
Bhuwan Pandey
66
@BhuwanPandey Realizar un "commit" no incluye un "push". Están separados Solo una "inserción" actualizará su confirmación en el repositorio remoto. Vea la imagen en la otra respuesta para ver eso. El "commit" va del índice al repositorio local, mientras que "push" termina yendo del repositorio local al repositorio remoto
camiblanch
¿La operación de sincronización puede causar conflictos cuando varios usuarios trabajan simultáneamente en la aplicación?
Murali Dhar Darshan
Estoy usando Visual Studio 2017, y el comando Confirmar y sincronizar no empuja completamente sus cambios. Lo digo porque al realizar una sincronización, mis cambios se muestran en la pestaña de historial en Visual Studio, pero en el sitio de Github no aparece. Tuve que ejecutar un comando Push después de Commig y Sync, y luego aparecieron mis cambios en el sitio de Github.
Fabiano
Creo que la confusión proviene de pensar que Commit envía archivos al repositorio remoto. De hecho, Commit simplemente registra sus ediciones con el repositorio local. Sin Push nunca llega al servidor.
Alan Baljeu
72

Para agregar a la respuesta de camieblanch. Encontré esta útil foto / publicación de tanascius ( aquí ). "Aquí hay una buena foto de Oliver Steele, que explica el modelo git y los comandos:" ingrese la descripción de la imagen aquí

A.harif
fuente
1
Pero, ¿dónde está Sync en esta imagen?
Alan Baljeu
2
No existe en la imagen. Si vuelve a consultar la respuesta de "camiblanch". Se compromete con su repositorio local, tire para sincronizar (fusionar) el repositorio remoto con su repositorio local y luego empuja el repositorio local fusionado al repositorio remoto.
A.sharif