Tengo un archivo foo.txt
en rama A
, y quiero retirarlo foo.txt
de la rama B
al índice. En la línea de comando, haría esto:
$ git checkout B -- foo.txt
Quiero poder hacer esto de manera mágica yendo al registro, buscando la confirmación que me interesa (por ejemplo l o B
), encontrando foo.txt
y ejecutando algún comando, pero no puedo encontrar la manera de hacerlo.
Respuestas:
A partir de magit 2.11.0 esto es posible directamente desde el despachador de reinicio (
X f
y puede especificar la revisión y el archivo):Esto se puede hacer mediante programación usando magit,
magit-file-checkout
que acepta una especificación de versión y el nombre de archivo (gracias a la solicitud de función de @Emoses y la implementación de @Kyle Meyer). Anteriormente se nombraba la funciónmagit-checkout-file
(de v2.3.0 - v2.9.0).fuente
magit-checkout-file
Ahora está obsoleto. Usar en sumagit-file-checkout
lugar.No conozco una forma integrada de hacer esto.
Suponiendo que está en la rama A, otro enfoque sería diferenciar la rama B (
d r ..B
), y luego mover el punto al archivo que le interesa. Al presionara
se aplicarán esos cambios al árbol de trabajo (en lugar del índice).Tengo un comando en mi configuración para restablecer o retirar un archivo de una revisión, pero, en su estado actual, no se ajusta exactamente a lo que está pidiendo porque no ofrecerá una buena revisión predeterminada cuando esté en Revisión Magit modo.
fuente