我有一个实时网站(通过 Windows Server 2008 R2 上的 IIS 提供服务)和该服务器上的 github 存储库。我在一个小型开发团队(3 人)工作,我们希望每天晚上自动拥有我们的实时网站:
- 从 IIS 托管文件夹复制到我们的本地存储库(在同一台服务器上)
- 查看“NightlyPush”分支
- 在新更新的 repo 中添加所有文件(因此此时它与 Prod 匹配)
- 提交 repo 中的所有文件
- 执行(强制)推送以更新 GitHub。
这样我们就有了一个只有开发人员手动操作的主分支,但是“NightlyPush”分支将拥有前一天晚上我们网站的最新版本。这样我们可以确保 master 永远是稳定的,但是 NightlyPush 是一个很好的备份,如果我们遇到麻烦或需要查看过去的代码,我们可以随时使用它。
我在 Powershell 中编写了一个脚本来处理所有这些,当我从 Git Shell(posh-git) 提示符手动运行它时它运行良好,但是通过批处理文件自动化它不起作用。如果我从 PowerShell(非 Git 之一)运行我的脚本,它不会识别任何 Git 命令......所以我想我可以通过 Git Shell 使用相同的语法运行它:
C:\Users\Me\AppData\Local\GitHub\GitHub.appref-ms --open-shell -no-exit C:\Users\Me\Documents\Scripts\CopySite_And_PushToGitHub.ps1
这将打开 Git Shell,但它只是在那里闪烁,就好像我没有将要执行的脚本传递给它一样。如果我手动将路径粘贴到提示符中并按回车 - 一切正常。
**注意:这是我第一次涉足 GitHub、Powershell 和批处理文件,我可能会遗漏一些愚蠢/明显的东西。如果是这样的话,只要有人能帮我解决这个问题,我就会接受这种羞辱!