Respuestas:
Úselo git checkout <sha1>
para ver un commit particular.
git log
muestra solo el primer commit ahora, ¿puedo averiguar el sha1 del próximo commit?
git log --oneline
y pegar la salida en un archivo de texto para referencia (se garantiza que las sumas abreviadas de sha1 que proporciona sean únicas). Otra opción, si su historial es lineal, es calcular cuántos commits hay desde el primer commit hasta el master
uso git checkout master~543
(si hay 543 commits), luego git checkout master~542
, etc.
Para ir a una versión / commit particular, ejecute los siguientes comandos. CÓDIGO HASH que puede obtener degit log --oneline -n 10
git reset --hard HASH-CODE
Nota : después de restablecer una versión / confirmación en particular, puede ejecutar git pull --rebase
, si desea recuperar todas las confirmaciones que se descartan.
reset
no solo desprotege un punto en particular en el gráfico, sino que también moverá su rama actualmente desprotegida
reset
, todos sus cambios pendientes se descartan.
git pull --rebase
funciona solo si tiene un control remoto para su repositorio y está actualizado.
Puede obtener una vista gráfica del historial del proyecto con herramientas como gitk
. Solo corre:
gitk --all
Si desea pagar una sucursal específica:
git checkout <branch name>
Para una confirmación específica, use el hash SHA1 en lugar del nombre de la rama. (Vea Treeishes en el Git Community Book , que es una buena lectura, para ver otras opciones para navegar por su árbol).
git log
también tiene un conjunto completo de opciones para mostrar el historial detallado o resumen.
No conozco una manera fácil de avanzar en un historial de compromiso. Los proyectos con una historia lineal probablemente no sean tan comunes. La idea de una "revisión" como la que tendría con SVN o CVS no se correlaciona muy bien en Git.
Usando una clave SHA1 de confirmación, puede hacer lo siguiente:
Primero, encuentre la confirmación que desea para un archivo específico:
git log -n <# commits> <file-name>
Esto, basado en su <# commits>
, generará una lista de confirmaciones para un archivo específico.
CONSEJO: si no está seguro de qué comprometerse que busca, una forma buena de saberlo es mediante el comando siguiente: git diff <commit-SHA1>..HEAD <file-name>
. Este comando mostrará la diferencia entre la versión actual de una confirmación y una versión anterior de una confirmación para un archivo específico.
NOTA: la clave SHA1 de un commit está formateada en la git log -n
lista como:
cometer
<SHA1 id>
Segundo, verifique la versión deseada:
Si ha encontrado el commit / versión que desea, simplemente use el comando: git checkout <desired-SHA1> <file-name>
Esto colocará la versión del archivo que especificó en el área de preparación. Para sacarlo del área de preparación simplemente use el comando:reset HEAD <file-name>
Para volver a donde apunta el repositorio remoto, simplemente use el comando: git checkout HEAD <file-name>
Estaba en una situación en la que tenemos una rama maestra, y luego otra rama llamada 17.0 y dentro de esta 17.0 había un hash de confirmación sin decir "XYZ" . Y el cliente recibe una compilación hasta esa revisión XYZ. Ahora nos encontramos con un error y eso debe resolverse para ese cliente. Por lo tanto, necesitamos crear una rama separada para ese cliente hasta ese hash "xyz". Así que así es como lo hice.
Primero creé una carpeta con ese nombre de cliente en mi máquina local. Digamos que el nombre del cliente es "AAA" una vez que se crea esa carpeta, siga el comando dentro de esta carpeta:
Una forma sería crear todos los commits realizados a parches. compruebe la confirmación inicial y luego aplique los parches en orden después de leer.
uso git format-patch <initial revision>
y luego git checkout <initial revision>
. Debería obtener una pila de archivos en su director comenzando con cuatro dígitos, que son los parches.
cuando haya terminado de leer su revisión, simplemente haga lo git apply <filename>
que debería parecer
git apply 0001-*
y cuente.
Pero realmente me pregunto por qué no querrías leer los parches en su lugar. Por favor, publique esto en sus comentarios porque tengo curiosidad.
el manual de git también me da esto:
git show next~10:Documentation/README
Muestra el contenido del archivo Documentation / README tal como estaban al día en la 10ma última confirmación de la rama siguiente.
También puede echar un vistazo a lo git blame filename
que le da una lista donde cada línea está asociada con un hash commit + autor.
Para llegar a un código comprometido específico, necesita el código hash de ese compromiso. Puede obtener ese código hash de dos maneras:
git log
y verifique sus confirmaciones recientes en esa rama. Le mostrará el código hash de su confirmación y el mensaje que dejó mientras confirmaba su código. Solo copia y luego hazgit checkout commit_hash_code
Después de pasar a ese código, si desea trabajar en él y realizar cambios, debe realizar otra bifurcación git checkout -b <new-branch-name>
, de lo contrario, los cambios no se retendrán.
git log -n1
. Pero a menos quegit checkout
falle, es una pérdida de esfuerzo.