Estoy viendo esto en este repositorio de GitHub :
¿Qué significa esto? ¿Cómo puede algo ser "creado hace 7 días" y, sin embargo, "comprometido hace 14 horas"?
Estoy viendo esto en este repositorio de GitHub :
¿Qué significa esto? ¿Cómo puede algo ser "creado hace 7 días" y, sin embargo, "comprometido hace 14 horas"?
commit --date=
. Schwern lo explica muy bien.Respuestas:
Git tiene un concepto separado del autor (la persona que escribió el código) y el confirmador (la persona que lo comprometió en el repositorio). Del mismo modo, puede haber diferentes fechas para ambos. Suelen ser lo mismo.
Desearía que fueran diferentes principalmente si la persona que escribe el código o envía el parche no tiene acceso directo al repositorio como en los proyectos que usan listas de correo para enviar parches. En este caso, la persona con acceso push aplicaría el parche y se ejecutaría
git commit
con los modificadores--author
y--date
o utilizando las variables de entorno GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL y GIT_AUTHOR_DATE (documentado en git-commit-tree .El otro caso está usando
git cherry-pick
o git rebase. El responsable es la persona que realiza la selección de cereza, y el autor es el autor del compromiso original. Git se encargará de configurar la identidad del autor y la fecha para usted.Puede ver esta información en el repositorio con
git log --pretty=fuller
.fuente
git rebase
también hace que la fecha de confirmación se actualice mientras que la fecha del autor sigue siendo la misma.Esto parece una mezcla entre cómo funciona Git con las fechas y cómo se hizo referencia con las palabras clave de cierre de GitHub .
Git separa entre las fechas de confirmación y autor. En Pro Git entran un poco en la diferencia :
Por lo tanto, aunque el código en sí fue confirmado / escrito "hace 7 días" (localmente), no fue "aplicado" o parcheado al código hasta "hace 14 horas", ya que no se vio en el control remoto hasta que se hizo referencia al cierre mensaje.
fuente