我们目前通过Git使用post-receive挂钩部署到开发服务器。它是一个开发服务器而不是一个登台服务器,所以我们希望能够部署/查看多个分支(而不仅仅是“dev”分支或类似的东西)。
当推送新的分支或提交时,后接收挂钩成功执行远程仓库的检出以推送任何分支。
我们的典型周期可能是:
在开发服务器上查看新的branch1 - git push devserver branch1
在开发服务器上查看新的branch2 - git push devserver branch2
再次在开发服务器上查看旧branch1 - git push devserver branch1
但是,如果我们想要检查分支旧分支而不是当前活动分支,我们无法执行git push devserver branch1
因为远程仓库响应“所有最新”,因为branch1
已经被推了一会儿。显然,post-receive挂钩没有运行,所以有另一种方法来操作远程结账吗?
我知道我可以通过SSH连接到开发服务器并以branch1
方式结帐,但如果可能的话,我想从我的本地仓库执行操作。我已经尝试过预接收和更新挂钩,但这些似乎都没有在这种情况下运行。
非常感谢任何帮助!
答案 0 :(得分:2)
由于它只是一个(dev)服务器,为什么不删除分支并重新创建它?
git push devserver :branch1
git push devserver branch1
答案 1 :(得分:0)
控制远程工作副本非常有限,因为git实际上并不是这样做的,所以你必须SSH服务器。制作一个小脚本连接和结账将节省您的时间和手指肌肉。
答案 2 :(得分:0)
您也可以尝试连接与pre-receive hook相同的脚本。这意味着无论您的推送命令是否成功,您的脚本都将运行。也就是说,我对这种东西非常警惕,因为你现在所做的就是使用钩子,这种钩子的设计不是为了使用而且可能在将来为自己挖洞。
真正的解决方案是@CharlesB建议的 - 使用一个简单的脚本。
编辑:请忽略此答案。正如评论所暗示的那样,这是行不通的。随意投票;)