2016-03-28 20 views
2

Kod oldukça basittir, sadece windows komut istemini açar ve calling() işlevini yürütür. Bir git repo'ya itmeme yardımcı olan temel git komutları var. Ssh ve uzak repo'yu yapılandırdım.Python Git Bash CMD Komut Dosyası

Bağlantı: https://github.com/vivekpatani/git-script-gitter

Ben tarihini değiştirebilirsiniz, ama git için itmek zaman, ben taahhüt bir yerine itti hangi geçerli tarihi görüntüler.

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

o 9 gün önce ve 11 gün önce, taahhüt olarak aslında aynı tarih göstermek istiyorum taahhüt gösterir Teslim listesi.

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

etrafa sonra ben YAZAR TARİHİ değiştirmek ve birlikte TARİH İŞLEMEYE gerektiğini okumak? Birisi bana yardım edebilir mi?

DÜZENLEME 1: Windows işletim sisteminde çalışıyorum.

Git Bash aracılığıyla çalıştırdığımda çalışır, bir şekilde bunu yalnızca Python'a dönüştürmesi gerekir.

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 

DÜZENLEME 2: Çözüm

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

cevap

2

--date yalnızca yazar tarihini değiştirir.

GIT_COMMITTER_DATE ortam değişkenini yazar tarihiyle aynı tarihe sahip olmak için ayarlamanız gerekir (using the env option of Popen() ve 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

Teşekkürler, ancak os.environ yazdırırken, GIT_COMMITTER_DATE değerini bulamıyorum. Ayrıca satır bir sözdizimi sorunu içeriyor. Lütfen bana rehberlik edebilir misiniz? –

+1

@VivekPatani amaç, bu değişkeni bulmak için çevre değişkenlerine * değişken * eklemektir. – VonC

+0

@VivekPatani Ayrıca, bir çift alıntı eksikti. – VonC