2016-12-13 48 views
1

我需要安排Windows Server 2008 R2中的任務來自動將文件從文件夾推送到Github Enterprise(我不認爲「企業」部分會使其不同於普通的Github,除了需要SSH認證)。Windows .bat文件來安排git添加,提交和推送到Github

這裏是我做了什麼:

  1. 設置公共/私有密鑰對,並分別將它們添加到Github上和的.ssh,
  2. 創建一個GitHub庫,並將其克隆到本地文件夾
  3. 手動通過addcommitpush步跑,以確保它這樣工作
  4. 試圖寫一個bat文件自動執行步驟#3
  5. 計劃任務以目標文件夾中具有最高權限的用戶身份運行

不幸的是,該任務失敗,因爲我沒有正確編寫.bat文件。

這是我嘗試在.bat文件:

echo git add . | "C:\Program Files\Git\bin\git.exe" 
echo git commit -m 'scheduled commit' | "C:\Program Files\Git\bin\git.exe" 
echo git push | "C:\Program Files\Git\bin\git.exe" 

我發現瞭如何做到這一點的好資源,但它是非常不幸的Linux特異性。

+0

正如一個音符,你可能會想這樣做的東西少了幾分公衆,還有一般無任何其他原因需要看到在您完成歷史記錄的編輯之前,您的工作。爲什麼要發佈昨天發佈的渾濁的文字和編碼錯誤,並且今天早上發現了? – jthill

+0

@jthill你的意思是文件被推送到Github?這只是一個每天由其他人的SAS腳本自動更新的文件。我們使用Github公司作爲與公司其他人共享每日更新文件的方式,同時避免爲新用戶更新網絡文件夾的權限。我們打算使用Sharepoint或Onedrive代替Github(因爲它是數據而不是代碼),但是有權限問題。 –

回答

2

只要做到:

git add . 
git commit -m 'scheduled commit' 
git push 

或者,如果Git是不是在您的路徑:

"C:\Program Files\Git\bin\git.exe" add . 
"C:\Program Files\Git\bin\git.exe" commit -m 'scheduled commit' 
"C:\Program Files\Git\bin\git.exe" push 

取決於你想要達到什麼樣的,

git commit -a -m 'scheduled commit' 

只犯跟蹤的文件已更改,或者:

git add -A 
git commit -m 'scheduled commit' 

提交新文件或刪除就更好了......

+0

更新了我的答案... – Philippe

+0

這有點奇怪。當我這樣做時,它說它已成功完成,但是當我看到Github時,我實際上看不到更新。 –

+0

我的更新不會取代仍然需要的推送... – Philippe

0

也許你應該直接調用git。 因爲git沒有從standard input讀取,echo的輸出對git沒有任何意義,通過管道|

該解決方案已經公佈由Philippe而我編輯這個答案:)