manteniendo los commits y tirando de un repository, y luego empujando los commits

Soy un principiante, así que me disculpo por la pregunta ingenua:

Estoy convirtiendo mi repository local en un desastre haciendo lo siguiente:

cambiar las cosas y comprometerlas pero no presionar. Ahora el repository en el server ha sido cambiado por otros usuarios. Lo que idealmente quiero hacer es ignorar todas mis confirmaciones, extraer la última versión del server y luego confirmar mi cambio y luego presionar. ¿Hay alguna forma de hacer esto?

Suponiendo que solo esté involucrada la twig principal, simplemente haz esto:

 $ git pull --rebase origin master 

Va a realizar todos los cambios en la twig principal, con sus confirmaciones re-basadas como si primero hubiera sacado los nuevos cambios, y luego, comenzara a hacer cambios y se comprometiera.

También puedes simplemente

 $ git pull 

pero es probable que termines con un compromiso de fusión. Me gusta volver a establecer la base primero (o pull --rebase ) para mantener el historial más fácil de leer.

Echa un vistazo a estos tutoriales de git: https://www.atlassian.com/git/

Estoy asumiendo que solo la twig master está involucrada aquí.

Primero guarde el trabajo actual en una nueva twig

 git checkout -b saved_branch 

puedes pagar en la comisión con la que comienzas.

 git checkout ab1234efbe 

Entonces puedes crear una nueva base de sucursales

 git checkout -b new_branch_name 

Ahora incorpore los cambios realizados por otros

 git pull origin master 

entonces puedes unir

 git merge saved_branch 

Ahora puedes presionar al server.

Parece que lo estás haciendo bien.

Hay muchas forms de arreglar esto. Trataré de sugerir una solución súper simplist 🙂

Encuentre una confirmación previa más abajo en el historial, ya sea usando SourceTree o git log , supongo que la confirmación antes de su primera confirmación local (no empujada).

A continuación, tenga en count la ID de confirmación (guid) de la última confirmación del server que desea conservar y " git reset --soft " las confirmaciones locales mientras mantiene los cambios con la git reset --soft :

 git reset 6c747669c865e03c13027761569f02d930937ee4 --soft 

Ahora su twig ha vuelto al estado original y sus cambios no están marcados. Etapa y esconda sus cambios:

 git add . git stash 

Ahora su twig principal debe estar limpia, en el estado original. Deberías estar bien para hacer una extracción / extracción desde el origen ahora.

Cuando su repository local esté actualizado con el maestro, simplemente vuelva a aplicar su alijo (y considere que ahora puede tener conflictos que resolver):

 git stash apply 

Algunas sugerencias: use una GUI como SourceTree para ver su repository local, pero mi sugerencia personal: no tenga la tentación de usar SourceTree para realizar cualquier acción (como confirmar o presionar). Usa la línea de command para cualquier acción. Solo use la GUI para ver / visualizar su historial de repos.

También recomiendo usar git-up (ya sea la versión de Ruby o Python , dependiendo de su plataforma. Yo uso PyGitUp uno).

Lo primero que debes saber al usar Git es que no puedes estropear nada (¡a less que, por supuesto, desorderes al server! 🙂

Debe sentirse cómodo con el uso de sucursales locales para su trabajo, en lugar de trabajar en la twig master . Eso hará que sea más fácil rebase / fusionar en el futuro.