我需要在Windows Server2008SSH中安排一个任务,自动将文件夹中的文件推送到Github Enterprise (我不认为“R2”部分会使它与常规的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的。
发布于 2016-12-14 02:37:43
只需这样做:
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'
提交新文件或删除更好...
发布于 2018-12-18 03:49:06
上面来自菲利普的答案是有效的。但是,如果它在执行commit之后检查错误级别的地方运行(就像在Jenkins中),那么它就不起作用。一个小的修改就可以解决这个问题:
git add -A
git diff-index --quiet HEAD || git commit -m "scheduled commit"
这在https://devops.stackexchange.com/a/5443的原始答案中有进一步的解释
发布于 2016-12-14 02:40:27
也许你应该直接调用git
。因为git
不从standard input
中读取,所以echo
的输出对于通过管道|
的git
没有任何意义。
当我编辑这个答案的时候,答案已经由菲利普发布了:)
https://stackoverflow.com/questions/41127838
复制相似问题