gpt4 book ai didi

git push 到远程,但不创建新分支

转载 作者:行者123 更新时间:2023-12-04 16:48:55 25 4
gpt4 key购买 nike

有没有办法git push,但是,如果分支在远程不存在,抛出错误或非零退出而不是在服务器上创建一个新分支?

用例如下。我正在创建脚本来帮助自动化我公司的 scm 工作流程。如果有人不小心将分支名称输入到脚本中,我不想在远程创建新分支。我已经可以手动检查远程分支是否存在,但我想知道 git 是否支持此功能。

最佳答案

不,目前还没有办法通过一次调用 git-push 来做到这一点。


可能的解决方法:

远程分支的存在可以这样检查:

#!/bin/bash
if ! git ls-remote --exit-code $remote /refs/heads/$branch
then
echo >&2 "Error: Remote branch does not exist"
exit 1
fi
exit 0

如果需要,也可以将其包含在 pre-push Hook 中。像这样的东西(放在 .git/hooks/pre-push 中):

#!/bin/sh
remote="$1"
url="$2"
while read local_ref local_sha remote_ref remote_sha
do
if ! git ls-remote --exit-code $url $remote_ref
then
echo >&2 "Remote branch does not exist, not pushing"
exit 1
fi
done
exit 0

这将导致所需的行为:

$ git push origin master:branch_that_does_not_exist
Remote branch does not exist, not pushing
error: failed to push some refs to 'git@github.com:some/repository.git'

如果您有权访问服务器,您还可以创建一个pre-recieve Hook 来拒绝创建新分支。

关于git push 到远程,但不创建新分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30787252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com