首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Windows .bat文件调度git添加、提交和推送到Github

Windows .bat文件调度git添加、提交和推送到Github
EN

Stack Overflow用户
提问于 2016-12-14 02:10:48
回答 3查看 5.8K关注 0票数 5

我需要在Windows Server2008SSH中安排一个任务,自动将文件夹中的文件推送到Github Enterprise (我不认为“R2”部分会使它与常规的Github有所不同,除非需要ssh身份验证)。

下面是我所做的:

  1. 设置公钥/私钥对并将其添加到Github和.ssh,创建Github存储库并将其克隆到本地Github运行通过addcommitpush步骤来确保它的工作方式
  2. 尝试编写.bat文件以自动执行步骤3
  3. 将任务安排为在目标文件夹中以具有最高权限的我的用户的身份运行<代码>H213<代码>G214

不幸的是,任务失败了,因为我没有正确地写入.bat文件。

这是我在.bat文件中的尝试:

代码语言:javascript
复制
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的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-14 02:37:43

只需这样做:

代码语言:javascript
复制
git add . 
git commit -m 'scheduled commit'
git push

或者,如果git不在您的路径中:

代码语言:javascript
复制
"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

根据你想要实现的目标,

代码语言:javascript
复制
git commit -a -m 'scheduled commit'

要仅提交已更改的跟踪文件,或者:

代码语言:javascript
复制
git add -A
git commit -m 'scheduled commit'

提交新文件或删除更好...

票数 10
EN

Stack Overflow用户

发布于 2018-12-18 03:49:06

上面来自菲利普的答案是有效的。但是,如果它在执行commit之后检查错误级别的地方运行(就像在Jenkins中),那么它就不起作用。一个小的修改就可以解决这个问题:

代码语言:javascript
复制
git add -A
git diff-index --quiet HEAD || git commit -m "scheduled commit"

这在https://devops.stackexchange.com/a/5443的原始答案中有进一步的解释

票数 1
EN

Stack Overflow用户

发布于 2016-12-14 02:40:27

也许你应该直接调用git。因为git不从standard input中读取,所以echo的输出对于通过管道|git没有任何意义。

当我编辑这个答案的时候,答案已经由菲利普发布了:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41127838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档