我需要在Windows Server 2008 R2中安排一个任务来自动将文件从文件夹推送到Github Enterprise(我不认为“Enterprise”部分会使它与常规Github不同,除了需要ssh身份验证)
这就是我所做的:
add
,commit
和push
步骤以确保其正常运行不幸的是,该任务失败了,因为我没有正确编写.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 :(得分:5)
只是做:
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'
提交新文件或删除更好......
答案 1 :(得分:1)
以上来自Philippe作品的答案。但是,如果它在执行落实后检查错误级别的某个地方运行(例如,在Jenkins中),则无法使用。进行较小的修改即可解决:
git add -A
git diff-index --quiet HEAD || git commit -m "scheduled commit"
有关https://devops.stackexchange.com/a/5443的原始答案对此进行了进一步解释
答案 2 :(得分:0)
也许您应该直接致电git
。
由于git
无法从standard input
读取,echo
的输出对git
通过管道|
没有任何意义。
菲利普已经发布了解决方案,我正在编辑这个答案:)