Uso del origen en los commands de Git

Soy nuevo en Git y tengo una pregunta. Estos dos commands parecen ser un emparejamiento común :

git fetch --all git reset --hard origin/master 

Si mi objective es restablecer un clon local a un estado limpio, ¿cómo es esto diferente de cualquiera de los siguientes?

 git fetch --all git reset --hard master # no origin 

O

 git reset --hard origin/master # no fetch 

Parece que ir a search primero no es necesario si vamos a especificar el control remoto de todos modos. ¿Estoy malentendiendo algo? ¿Es esta una convención con un propósito o simplemente una tradición / hábito sin base?

Por qué estoy preguntando:

Estoy escribiendo guiones para una máquina de construcción. Quiero search todo en un punto en el time, y luego trabajar desde el contenido local para la duración de la compilation, por lo que no hay posibilidad de que los cambios se realicen en parte en una compilation. Parece que me gustaría search desde el control remoto una vez y no especificar el origin en los commands después de eso. Sin embargo, estoy teniendo dificultades para encontrar ejemplos de eso en línea, por lo que no estaba seguro de si había algo que me faltaba.

Primero, los conceptos básicos de las sucursales remotas. Tu repository se ve algo como esto.

 A - B - C [origin/master] \ D - E [master] 

master y origin/master son ambas twigs, que son solo tags que apuntan a una confirmación. En este caso, has realizado dos commits para master desde la última vez que recuperaste.

Git no habla con la networking a less que se lo diga. Realiza un seguimiento de la última vez que miró un repository remoto con una "twig remota". origin/master es una "twig remota". Es su copy local de la twig master en el origin nombrado remoto actualizado la última vez que se git fetch origin git fetch --all o git fetch --all run (o git pull , que hace una búsqueda).


 git reset --hard origin/master 

Esto se usa para descartar todo tu trabajo local . Esto restablecerá la twig actual y el directory de trabajo a donde está el origin/master , que es C D y E se perderán.

 A - B - C [origin/master] \ D - E [master] git reset --hard origin/master A - B - C [origin/master] [master] 

 git reset --hard master 

Esto restablecerá su twig actual y su directory de trabajo nuevamente a master . Si usted está master esto deshará su trabajo no comprometido. Pero si estás en una twig diferente, simplemente te arruinaste la twig .

Para descartar los cambios no confirmados, lo más seguro que hay que hacer es git reset --hard HEAD . HEAD es un puntero al compromiso actualmente desprotegido. Funcionará sin importar en qué twig estés. Lo tengo alias para clear .


Quiero search todo en un punto en el time, y luego trabajar desde el contenido local para la duración de la compilation, por lo que no hay posibilidad de que los cambios se realicen en parte en una compilation.

Git no habla con la networking a less que se lo diga. Hay dos commands que actualizarán tu repository local, git fetch y git pull (que hace una búsqueda). Si no los ejecuta, sus twigs de origin/ remoto no cambiarán.

Si recoges y finalizas la compra al comienzo de tu compilation, estarás bien. Si necesita restablecer a un estado limpio puede ejecutar git reset --hard HEAD . Es posible que también desee ejecutar git clean -dxf que arrojará cualquier file sin seguimiento o ignorado, como artefactos de compilation.