¿Ha intentado usar 'git log -n 1' cuando ha verificado esa rama específica?
Rick van Bodegraven
git log proporciona hash a los repositorios locales, pero el repositorio de git hub tiene un nuevo hash.
mbdvg
1
git log -n 1 [branch_name]branch_name (puede ser una sucursal remota o local) es opcional. Sin branch_name, mostrará la última confirmación de la rama actual.
Rahul Tapali
11
Con votos para cerrar así, SO se está convirtiendo en Wikipedia.
Nota: no tiene que ser la git://URL. Podría serlo https://o [email protected]:también.
Originalmente, esto estaba orientado a descubrir la última confirmación de una rama remota (no solo de su última búsqueda, sino la última confirmación real en la rama en el repositorio remoto). Si necesita el hash de confirmación para algo localmente, la mejor respuesta es:
git rev-parse branch-name
Es rápido, fácil y con un solo comando. Si desea el hash de confirmación para la rama actual, puede mirar HEAD:
git rev-parse my_branch_nameO git log -n 1 my_branch_name | grep commit | awk '{ print $2 }'respuesta más simple; generará solo el último hash de confirmación demy_branch_name
betoharres
@betoharres, el OP estaba originalmente tratando de determinar la confirmación en un repositorio remoto (no lo que tenemos refs/remotes, sino el repositorio remoto real). git rev-parse branch-namees definitivamente el camino a seguir para una sucursal local.
John Szakmeister
Esto solo funciona en el campo del git svnporque git svn fetchcambia la git logsalida y, por lo tanto, git logya no se puede usar para obtener el último hash de confirmación del repositorio git remoto .
Andry
@Andry No estoy seguro de lo que quieres decir ... Tengo problemas para seguir tu comentario. ¿Puedes explicarme mas?
John Szakmeister
139
git log -n 1 [branch_name]
branch_name(puede ser una sucursal remota o local) es opcional. Sin branch_name, mostrará la última confirmación en la rama actual.
Por ejemplo:
git log -n 1
git log -n 1 origin/master
git log -n 1 some_local_branch
git log -n 1 --pretty=format:"%H" #To get only hash value of commit
Bien, agregué esto a mi .gitconfig para poder copiar la última confirmación con git hash | pbcopy clip `` [alias] hash = "! F () {\ git log -n 1 --pretty = format:"% H "; \}; f "` ``
Pantalones
2
Intente usar git log -n 1después de hacer un git checkout branchname. Esto muestra el hash de confirmación, el autor, la fecha y el mensaje de confirmación para la última confirmación.
Realice una git pull origin/branchnameprimera para asegurarse de que su repositorio local coincida con el flujo ascendente.
Si quizás solo desea ver una lista de las confirmaciones que su sucursal local está detrás en la sucursal remota, haga esto:
mi requisito es verificar que los repositorios locales y los repositorios de github commit hash sean iguales o no, ¿cómo podemos hacer esto?
mbdvg
Hasta donde yo sé, no hay forma de que los hashes de confirmación difieran entre su repositorio local y remoto para las mismas confirmaciones. ¿Quizás quiso decir una lista de las confirmaciones que falta en su repositorio local frente al repositorio remoto?
Rick van Bodegraven
Sí Rick van, hay una falta de coincidencia, entonces, quiero mostrar que hay una diferencia en el repositorio local y en github, así que necesito una forma de averiguarlo
mbdvg
2
tu puedes git fetch nameofremoterepo, entoncesgit log
y personalmente, alias gitloga git log --graph --oneline --pretty --decorate --all. Pruébalo y ve si te queda
--onlinees una abreviatura de --pretty=oneline --abbrev-commit. Pero también estás usando --pretty, lo que revierte --pretty=oneline... Yo lo recomendaría en su git log --graph --abbrev-commit --decorate --alllugar.
Felix Kling
Frio. No me di cuenta de eso. ¡Gracias!
nglinh
0
En un comentario que escribiste
quiero mostrar que hay una diferencia en el repositorio local y github
Como ya se mencionó en otra respuesta, debe hacer una git fetch originprimera. Luego, si el control remoto está por delante de su rama actual, puede enumerar todas las confirmaciones entre su rama local y la remota con
git log master..origin/master --stat
Si su sucursal local está por delante:
git log origin/master..master --stat
--stat también muestra una lista de archivos modificados.
Si desea enumerar explícitamente las adiciones y eliminaciones, use git diff:
Tenga en cuenta que cuando utilice la opción "git log -n 1 [branch_name]". -n devuelve solo una línea de registro, pero no se garantiza el orden en que se devuelve. A continuación se muestra un extracto de la página de manual de git-log
.....
.....
Commit Limiting
Besides specifying a range of commits that should be listed using the special notations explained in the description, additional commit limiting may be applied.
Using more options generally further limits the output (e.g. --since=<date1> limits to commits newer than <date1>, and using it with --grep=<pattern> further limits to commits whose log message has a line that matches <pattern>), unless otherwise noted.
Note that these are applied before commit ordering and formatting options, such as --reverse.
-<number>
-n <number>
.....
.....
git log -n 1 [branch_name]
branch_name (puede ser una sucursal remota o local) es opcional. Sin branch_name, mostrará la última confirmación de la rama actual.Respuestas:
Utilice
git ls-remote git://github.com/<user>/<project>.git
. Por ejemplo, mi proyecto trac-backlog da:Solo busca el que necesitas y córtalo:
O puede especificar qué referencias desea en la línea de comando y evitar el grep con:
Nota: no tiene que ser la
git://
URL. Podría serlohttps://
o[email protected]:
también.Originalmente, esto estaba orientado a descubrir la última confirmación de una rama remota (no solo de su última búsqueda, sino la última confirmación real en la rama en el repositorio remoto). Si necesita el hash de confirmación para algo localmente, la mejor respuesta es:
Es rápido, fácil y con un solo comando. Si desea el hash de confirmación para la rama actual, puede mirar HEAD:
fuente
git rev-parse my_branch_name
Ogit log -n 1 my_branch_name | grep commit | awk '{ print $2 }'
respuesta más simple; generará solo el último hash de confirmación demy_branch_name
refs/remotes
, sino el repositorio remoto real).git rev-parse branch-name
es definitivamente el camino a seguir para una sucursal local.git svn
porquegit svn fetch
cambia lagit log
salida y, por lo tanto,git log
ya no se puede usar para obtener el último hash de confirmación del repositorio git remoto .branch_name
(puede ser una sucursal remota o local) es opcional. Sinbranch_name
, mostrará la última confirmación en la rama actual.Por ejemplo:
fuente
git hash | pbcopy clip
`` [alias] hash = "! F () {\ git log -n 1 --pretty = format:"% H "; \}; f "` ``Intente usar
git log -n 1
después de hacer ungit checkout branchname
. Esto muestra el hash de confirmación, el autor, la fecha y el mensaje de confirmación para la última confirmación.Realice una
git pull origin/branchname
primera para asegurarse de que su repositorio local coincida con el flujo ascendente.Si quizás solo desea ver una lista de las confirmaciones que su sucursal local está detrás en la sucursal remota, haga esto:
Esto enumerará todos los hash de las confirmaciones que aún no ha combinado en su rama local.
fuente
tu puedes
git fetch nameofremoterepo
, entoncesgit log
y personalmente, alias
gitlog
agit log --graph --oneline --pretty --decorate --all
. Pruébalo y ve si te quedafuente
--online
es una abreviatura de--pretty=oneline --abbrev-commit
. Pero también estás usando--pretty
, lo que revierte--pretty=oneline
... Yo lo recomendaría en sugit log --graph --abbrev-commit --decorate --all
lugar.En un comentario que escribiste
Como ya se mencionó en otra respuesta, debe hacer una
git fetch origin
primera. Luego, si el control remoto está por delante de su rama actual, puede enumerar todas las confirmaciones entre su rama local y la remota conSi su sucursal local está por delante:
--stat
también muestra una lista de archivos modificados.Si desea enumerar explícitamente las adiciones y eliminaciones, use
git diff
:fuente
Tenga en cuenta que cuando utilice la opción "git log -n 1 [branch_name]". -n devuelve solo una línea de registro, pero no se garantiza el orden en que se devuelve. A continuación se muestra un extracto de la página de manual de git-log
fuente