Script CMD Python Git Bash

El código es bastante sencillo, simplemente abre el símbolo del sistema de Windows y ejecuta la function de llamada (). Tiene commands git básicos que me ayudan a empujar a un git repo. He configurado ssh y repo remoto.

Enlace: https://github.com/vivekpatani/git-script-gitter

Puedo cambiar la date, pero cuando lo presiono a git, muestra la date actual en la que presioné en lugar de la que cometí.

The Commit List donde se muestra comprometido hace 9 días y hace 11 días juntos

La Lista de compromisos donde se muestra comprometida hace 9 días y hace 11 días, quiero que muestre realmente la misma date que la confirmada.

def calling(): #Simply opening command prompt in Windows subprocess.call("git --version") subprocess.call("git status") subprocess.call("git add .") subprocess.call("git commit -am \"Changing Things\" --date=\"Sat, 26 Mar 2016 18:46:44 -0800\"") subprocess.call("git push origin master") #To stop from cmd closing automatically temp = input("Enter to close:") def main(): calling() if __name__ == "__main__": main() 

Después de mirar alnetworkingedor, leí que necesito cambiar la FECHA DE AUTOR y FECHA DE COMPROMISO juntas. Puede alguien por favor ayudarme.

EDIT 1: estoy trabajando en el sistema operativo Windows.

Funciona cuando lo ejecuto a través de Git Bash, de alguna manera solo necesito convertirlo a Python.

 git --version git status git add . GIT_AUTHOR_DATE='Fri Mar 25 19:32:10 2016 -0800' GIT_COMMITTER_DATE='Fri Mar 25 19:32:10 2016 -0800' git commit -am "Hello Laney" git push origin master 

EDIT 2: Solución

 def calling(git_date): subprocess.call("git --version") subprocess.call("git status") subprocess.call("git add .") #The next statement is important as updates/adds new GitCommiterDate in environment making it the current commit date. os.environ["GIT_COMMITTER_DATE"] = 'Fri Mar 25 19:32:10 2016 -0800' #The date in commit command only changes author date. subprocess.call("git commit -am \"Changing Things\" --date=\"Fri Mar 25 19:32:10 2016 -0800\"") subprocess.call("git push origin master") 

--date solo modifica la date del autor.

GIT_COMMITTER_DATE establecer la variable de entorno GIT_COMMITTER_DATE para tener la misma date que la date de autor ( utilizando la opción env de Popen() y fusionándola con el entorno actual ).

 subprocess.call("git commit -am \"Changing Things\" --date=\"Sat, 26 Mar 2016 18:46:44 -0800\"", env=dict(os.environ, "GIT_COMMITTER_DATE":"Sat, 26 Mar 2016 18:46:44 -0800"))