¿Cómo realizar el pago en Git por fecha?
Estoy trabajando en una regresión en el código fuente. Me gustaría decirle a Git: "consulte la fuente según una fecha/hora parametrizada". es posible?
También he preparado cambios en mi visión actual que no quiero perder. Idealmente, me gustaría alternar entre la fuente actual y alguna versión que me interese según una fecha anterior.
Para mantener los cambios actuales
Puedes mantener tu trabajo escondido, sin comprometerlo, con git stash
. Lo usarías git stash pop
para recuperarlo. O puede (como dijo carleeto ) git commit
enviarlo a una rama separada.
Pagar por fecha usando rev-parse
Puede verificar una confirmación antes de una fecha específica rev-parse
de esta manera:
git checkout 'master@{1979-02-26 18:30:00}'
Puede encontrar más detalles sobre las opciones disponibles en git-rev-parse
.
Como se señaló en los comentarios, este método utiliza reflog para encontrar la confirmación en su historial. Por defecto, estas entradas caducan después de 90 días . Aunque la sintaxis para usar reflog es menos detallada, solo puedes retroceder 90 días.
Pagar por fecha usando rev-list
La otra opción, que no usa reflog, es usar rev-list
para obtener la confirmación en un momento particular con:
git checkout `git rev-list -n 1 --first-parent --before="2009-07-27 13:37" master`
Tenga en cuenta --first-parent si desea solo su historial y no las versiones obtenidas mediante una fusión. Eso es lo que normalmente quieres.
La solución de Andy no me funciona. Aquí encontré otra manera:
git checkout `git rev-list -n 1 --before="2009-07-27 13:37" master`
Git: pago por fecha
Parece que necesitas algo como esto: Git checkout basado en fecha
En otras palabras, usas rev-list
para encontrar la confirmación y luego usas checkout para obtenerla.
Si no quiere perder los cambios realizados, lo más fácil sería crear una nueva rama y enviarlos a esa rama. Siempre puedes alternar entre ramas.
Editar: el enlace no funciona, así que aquí está el comando:
git checkout `git rev-list -n 1 --before="2009-07-27 13:37" master`