¿Cuál es la manera correcta?
git add foo.js
git commit foo.js -m "commit"
git pull
git push
O
git pull
git add foo.js
git commit foo.js -m "commit"
git push
O
git add foo.js
git pull
git commit foo.js -m "commit"
git push
UPD:
Olvidé mencionar que en este caso utilizo git add
para organizar un archivo modificado y rastreado . No incluir un archivo nuevo en el repositorio. ¿Esto cambia el orden de los comandos?
Respuestas:
Creo que la mejor forma de hacerlo es:
Guarda tus cambios locales:
Actualiza la rama al código más reciente
Fusiona tus cambios locales en el código más reciente:
Agregue, confirme y envíe sus cambios
En mi experiencia, este es el camino hacia la menor resistencia con Git (en la línea de comando de todos modos).
fuente
git stash
?tirar = recuperar + fusionar.
Debe comprometer lo que ha hecho antes de fusionarse.
Así que tira después de comprometerte.
fuente
rebase
hacerlo en lugar demerge
. Puedes hacerlo congit commit && git rebase
o congit pull --rebase
.git pull
después de organizar mis cambios, ya que lo encuentro más natural. Aunque me doy cuenta de que funcionan muchos flujos de trabajo diferentes (el alijo también es bueno), probablemente sea una cuestión de gustos.Sugeriría extraer de la rama remota con la mayor frecuencia posible para minimizar grandes fusiones y posibles conflictos.
Habiendo dicho eso, optaría por la primera opción:
Confirme sus cambios antes de extraer para que sus confirmaciones se fusionen con los cambios remotos durante la extracción. Esto puede resultar en conflictos con los que puede comenzar a lidiar sabiendo que su código ya está comprometido en caso de que algo salga mal y tenga que abortar la fusión por cualquier motivo.
Sin embargo, estoy seguro de que alguien no estará de acuerdo conmigo, no creo que haya ninguna forma correcta de hacer este flujo de fusión, solo lo que funciona mejor para las personas.
fuente
git add
se usa exactamente en mi ejemplo.Creo que
git pull --rebase
es la forma más limpia de establecer sus confirmaciones recientes localmente además de las confirmaciones remotas que no tiene en un momento determinado.De esta manera, no tendrá que tirar cada vez que desee comenzar a realizar cambios.
fuente
Desea que su cambio se ubique en la parte superior del estado actual de la rama remota. Así que probablemente quieras tirar justo antes de comprometerte. Después de eso, presione sus cambios nuevamente.
Los archivos locales "sucios" no son un problema siempre que no haya ningún conflicto con la sucursal remota. Sin embargo, si hay conflictos, la fusión fallará, por lo que no hay riesgo ni peligro al extraer antes de realizar cambios locales.
fuente