2016-03-28 11 views
2

Der Code ist ziemlich einfach, es öffnet nur Windows-Eingabeaufforderung und führt die Calling() -Funktion aus. Es hat grundlegende Git-Befehle, die mir helfen, zu einem Git-Repo zu gelangen. Ich habe ssh und remote Repo konfiguriert.Python Git Bash CMD Skript

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

kann ich das Datum ändern, aber wenn ich es schieben git, zeigt es das aktuelle Datum, an dem ich geschoben, anstatt die, die ich begangen.

The Commit List where it shows committed 9 days ago and 11 days ago together

Die Liste Commit, wo es vor 9 Tagen engagiert zeigt und 11 Tage, ich will es eigentlich das gleiche Datum zeigen, wie engagiert.

Nachdem ich mich umgesehen habe, habe ich gelesen, dass ich das AUTHOR DATE und COMMIT DATE zusammen ändern muss? Kann mir bitte jemand helfen?

EDIT 1: Ich arbeite unter Windows OS.

Es funktioniert, wenn ich es durch Git Bash, irgendwie muss nur, dass zu Python konvertieren.

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: Lösung

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") 

Antwort

2

--date ändert nur den Autor Datum.

Sie müssen die Umgebungsvariable GIT_COMMITTER_DATE einstellen, um das gleiche Datum wie das Autoratum zu haben (using the env option of Popen() und merging it with the current environment).

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")) 
+0

Danke, aber wenn ich os.environ drucke, kann ich das GIT_COMMITTER_DATE nicht finden. Auch die Zeile enthält ein Syntaxproblem. Bitte, kannst du mich führen? –

+1

@VivekPatani das Ziel besteht darin, * die * Variable zu den Umgebungsvariablen hinzuzufügen, nicht um sie zu finden. – VonC

+0

@VivekPatani Auch ein Doppelzitat fehlte. – VonC