如何从我在预接收挂钩中将代码推送到远程服务器的位置获取当前分支名称?

时间:2018-04-04 14:11:39

标签: bitbucket

我正在尝试从我将代码推送到远程服务器中的分支的位置获取当前分支名称。

示例:我的本地分支名称是s095_Development,我正在将代码从本地推送到主服务器。

我想在我的预接收挂钩中获取本地分支名称。

current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')
current_branch=$(git rev-parse --abbrev-ref HEAD | cut -d'_' -f1 | cut -d'/' -f3 )
current_branch=$(git name-rev --name-only HEAD | cut -d'_' -f1 | cut -d'/' -f3 )

我已经使用了以上所有内容,但似乎没有任何内容对我有用 - 我无法获取当前的分支名称。

2 个答案:

答案 0 :(得分:0)

在项目所在的目录中使用以下命令。

git branch 

使用git push时,它会推送到该分支但在远程服务器中。因此,如果您目前在master,则会推送到remotes/origin/master

答案 1 :(得分:0)

这对我来说很有效,使用PHP在服务器上执行预接收钩子

#!/usr/bin/php
<?php

$stdin      = trim(fgets(STDIN));
$branchName = end(explode('/', end(explode(' ', $stdin))));