如何获取后接收挂钩的当前遥控器?
我需要同时获取当前的遥控器和当前的分支:
branch=$(git rev-parse --symbolic --abbrev-ref $1)
)有什么建议吗?
答案 0 :(得分:2)
后接收挂钩位于服务器端(远程URL引用的一侧)。
因此,该钩子没有“远程”的概念:它不知道它是如何访问它的回购。
任何git config branch.$branch.remote
命令在服务器上游端都不起作用,因为在客户端下游存储库上设置了一个远程。
OP Omar Chacin添加in the comments:
基本上我要做的是部署几十个网站(每个网站都有一个开发和主分支)。
问题是我知道如何选择我想要的分支,但是如何获得我想要部署的网站呢? 假设我有三个我想单独部署的网站。如何将我的主人或开发分支推送到其中一个网站(使用UNC)?
因此,通常的解决方案可能涉及:
我会选择最后一个解决方案,因为从客户端使用的UNC(远程)会明确指出要在服务器上更新的目标站点。
答案 1 :(得分:0)
Git实际上没有“当前遥控器”的概念。您有一个当前分支,可能有也可能没有与之关联的远程分支,并且可能设置了“pushremote”来覆盖远程(在这种情况下,您需要更改下面的命令)。
您可以使用git config branch.<name>.remote
找到当前分支将被推送到的远程(默认情况下),其中<name>
是当前分支的名称。这将为您提供遥控器的名称,您可以使用git config remote.<name>.url
获取其网址,或使用git remote show <name>
获取有关该网址的完整信息
因此,如果$branch
是分支名称,则会告诉您推送网址:
git config remote.$(git config branch.$branch.remote).url
要处理覆盖遥控器的pushremote
的情况:
git config remote.$(git config branch.$branch.pushremote || git config branch.$branch.remote).url