【问题标题】:Windows .bat file to schedule git add, commit and push to Github用于安排 git add、提交和推送到 Github 的 Windows .bat 文件
【发布时间】:2016-12-13 18:10:47
【问题描述】:

我需要在 Windows Server 2008 R2 中安排一个任务来自动将文件从文件夹推送到 Github Enterprise(我不认为“Enterprise”部分会使其与常规 Github 不同,除了需要 ssh 身份验证) .

这是我所做的:

  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。

【问题讨论】:

  • 请注意,您可能希望对一些不太公开的内容执行此操作,通常在您完成历史编辑传递之前,其他人没有理由需要查看您的工作。为什么要发布你昨天犯的、今天早上发现的混乱的写作和编码错误?
  • @jthill 你的意思是文件被推送到 Github 吗?它只是一个由其他人的 SAS 脚本每天自动更新的文件。我们使用公司 Github 作为与公司其他人共享每日更新文件的一种方式,同时避免为新用户更新网络文件夹的权限。我们打算使用 Sharepoint 或 Onedrive 而不是 Github(因为它是数据,而不是代码),但是存在权限问题。

标签: git batch-file github windows-server-2008-r2


【解决方案1】:

只要做:

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'

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

【讨论】:

  • 这有点奇怪。当我这样做时,它说它已成功完成,但是当我查看 Github 时,我实际上并没有看到更新。
  • 那么如何在这里放置一些条件。比如,假设你的推送失败了。你想再试一次。
【解决方案2】:

Philippe 的上述回答有效。但是,如果它在执行提交后检查错误级别的某个地方运行(如在 Jenkins 中),则它不起作用。一个小的修改解决了这个问题:

git add -A
git diff-index --quiet HEAD || git commit -m "scheduled commit"

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

【讨论】:

    【解决方案3】:

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

    解决方案已由 Philippe 在我编辑此答案时发布:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 2016-07-06
      • 2013-01-31
      • 2019-07-01
      相关资源
      最近更新 更多