¿Cómo puedo retirar la versión HEAD de mi sucursal remota / de seguimiento?

En git, ¿cómo puedo retirar la versión HEAD de mi sucursal remota / de seguimiento? Básicamente, quiero hacer un 'svn checkout' en git.

Creo que lo más parecido que encuentro es 'git fetch', pero desde la página de manual, ¿no sé cómo comprar 1 file en particular usando eso?

Primero, una nota: el repository remoto puede tener más de una twig; también HEAD significa (para el desarrollo local y sucursales locales) la ramificación actualmente verificada, y para la remota la twig de seguimiento remoto (reference simbólica) remote/HEAD significa la twig pnetworkingeterminada en el control remoto. No hay tal cosa como 'JEFE de twig'; HEAD es un puntero a la bifurcación (o a veces a un commit).

En segundo lugar, Git opera (como escribió Novelocrat ) en todo el nivel del tree (todos los files en el repository). En Git, compras una sucursal (aunque también puedes download una versión de file desde alguna twig al directory de trabajo, es less la operación de commkon).


En Git puedes crear nuevos compromisos solo en la parte superior de alguna twig local. No puede crear confirmaciones directamente en las sucursales de seguimiento remoto, ya que están destinadas a seguir las twigs del repository remoto (y perdería su trabajo en la recuperación).

Por lo tanto, el simple " git checkout origin " (asumiendo que el control remoto se llama origin ), que es un atajo para " git checkout origin/HEAD ", que generalmente es " git checkout origin/master " verificaría un estado de seguimiento remoto en una twig sin nombre , llamado HEAD separado. Esta es una buena solución si solo desea ver / explorar el estado de la sucursal de seguimiento remoto.

Si usa " git checkout --track origin/master " crearía un branch master local, que está destinado a seguir (rastrear) el origin/master twig de tracking remoto . Tenga en count que git-clone configura automáticamente dicha twig local (generalmente master ) para la twig pnetworkingeterminada ( origin/HEAD ) de origin remoto (generalmente origin/master ), por lo que no tendría que hacer esto. Luego, el simple " git pull " cuando se encuentra en el master twig searchía (si es necesario), y trataría de fusionar los cambios locales con los cambios en la twig respectiva en el repository remoto. Si no hubo cambios en el control remoto, se trata de un estado "actualizado" y su sucursal local no cambiaría; si no hubo cambios en su sucursal local pero se encontraban en remoto, entonces la sucursal local simplemente avanza al estado de la sucursal de seguimiento remoto, que se denomina "avance rápido". Puedes pensar en " git pull " aquí como un equivalente muy, muy aproximado de " svn update ".

También puede forzar a su sucursal local a rebobinar al estado de la sucursal de seguimiento remoto con " git reset --hard origin ". Tenga en count que --hard significa aquí forzar la sobrescritura del directory de trabajo, por lo que se perderán los cambios no realizados. Use con cuidado.

Finalmente, si desea verificar un solo file de la twig de seguimiento remoto (es decir, tener en la versión de directory de trabajo del file como en la sucursal de seguimiento remoto), simplemente puede usar la forma 'pathspec' de git-checkout, es decir " git checkout origin -- file ". Si solo quiere ver cómo se ve el file en la twig de seguimiento remoto, use " git show origin:path/to/file ".

HTH

Git no tiene la idea de recuperar un solo file. Siempre mueve commits a través de la networking.

Una vez que hayas hecho un git clone de algún repository remoto, puedes git checkout remotename/branch para ver las versiones más recientes de esa twig en tu copy de trabajo. Si desea modificarlos, debe git checkout -b <yourbranchname> remotename/branch para iniciar una twig local. Esto podría ser mejor hecho como

 git branch --track mybranchname remotename/branchname git checkout mybranchname 

De modo que su sucursal local "rastree" la sucursal remota y de forma pnetworkingeterminada empuje y tire de esa twig.