Soy bastante nuevo en Github y me he encontrado con un problema de aficionado.
Se me ha pedido que revise el código y se me ha proporcionado un hash de confirmación, sin embargo, he intentado buscar en Git si puedo buscar usando hashes de confirmación pero no he podido encontrar nada.
¿Hay alguna manera de encontrar el código modificado con solo usar el hash de confirmación?
Respuestas:
Una URL del formulario
https://github.com/<owner>/<project>/commit/<hash>
le mostrará los cambios introducidos en esa confirmación. Por ejemplo, aquí hay una corrección de errores reciente que hice a uno de mis proyectos en GitHub:https://github.com/jerith666/git-graph/commit/35e32b6a00dec02ae7d7c45c6b7106779a124685
También puede acortar el hash a cualquier prefijo único, así:
https://github.com/jerith666/git-graph/commit/35e32b
Sé que acabas de preguntar sobre GitHub, pero para completar: si tienes el repositorio desprotegido, desde la línea de comandos, puedes lograr básicamente lo mismo con cualquiera de estos comandos (los prefijos únicos también funcionan aquí):
Nota: Si acorta demasiado el hash de confirmación, la línea de comando le brinda un útil mensaje de desambiguación, pero GitHub solo devolverá un 404.
fuente
git log -p -1 35e32b6a00dec02ae7d7c45c6b7106779a124685
el-1
es necesario porque de lo contrario sería una muestra de todas las confirmaciones olders; es bueno saber que puede usar los cuatro números iniciales del hash (el mínimo en mis pruebas), porque no hay finalización automática para el hash; y no se puede especificar la rama de esta manera:git log master -p -1 35e3
. Versión de Git: 1.7.9.5.git log -p -1 35e32b6a
Ver confirmación única:
https://github.com/<user>/<project>/commit/<hash>
Ver registro:
https://github.com/<user>/<project>/commits/<hash>
Ver repositorio completo:
https://github.com/<user>/<project>/tree/<hash>
<hash>
puede ser de cualquier longitud siempre que sea único.fuente
La capacidad de buscar confirmaciones se ha agregado recientemente a GitHub.
Para buscar un hash, solo ingrese al menos los primeros 7 caracteres en el cuadro de búsqueda. Luego, en la página de resultados, haga clic en la pestaña "Compromisos" para ver los compromisos coincidentes (pero solo en la rama predeterminada, por lo general
master
), o en la pestaña "Problemas" para ver las solicitudes de extracción que contienen el compromiso.Para ser más explícito, puede agregar el
hash:
prefijo a la búsqueda, pero no es realmente necesario.También hay una API REST (al momento de escribir, todavía está en la vista previa).
fuente
https://YourGithubDomain/search?q=YOUR_COMMIT_HASH&type=Commits
cuenta que también probé esto en Github, y funcionó allí también, por ejemplohttps://github.com/search?q=38db172d13962ea177c00c9a3b4b3169b317e94b&type=Commits