git - 如何每次都将未知名称的分支推送到远程?

标签 git github

通常,当我推送时,我使用git push origin master,我通常在脑海中读到它,从我的本地主机推送到远程源。我现在正在制作一个需要很多人使用的脚本。假设我们有一个名为 Release 1.0 的远程分支。我希望我的脚本自动将用户分支推送到远程,无论分支的名称是什么。假设我们有一个名为experimentalBranch 的分支,它基于Release 1.0。无论名称如何,如何始终将分支推送到远程?按照我的正常方式,这是行不通的,因为我指定了本地分支名称 master。

我应该补充一点,我也不知道 Remote 的名称。本质上我想说“将我的本地分支推送到远程,无论本地和远程是什么。”

最佳答案

这会推送到具有正确分支名称的给定远程,无论它是什么:

git push origin HEAD

不幸的是,您仍然需要知道其远程名称。

如果您想要即使不知道远程名称也能工作的东西,那就有点复杂了。我能找到的最好方法是这个命令,它打印远程跟踪分支的名称,包括远程的名称:

git rev-parse --abbrev-ref --symbolic-full-name @{u}

其输出格式为remotename/branchname。您可以使用 bash 从中提取远程名称,例如:

refname=$(git rev-parse --abbrev-ref --symbolic-full-name @{u})
IFS=/ read -a arr <<< "$refname"
remote=${arr[0]}
branch=${arr[1]}

然后你可以像这样推送:

git push $remote $branch
# actually this should do as well:
# git push $remote HEAD

关于git - 如何每次都将未知名称的分支推送到远程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23573968/

相关文章:

c - 如何配置 git 以忽略文件?

GitHub 文件夹上有一个白色箭头

linux - 如何在 Windows git 沙箱中强制 LF 用于特定文件?

linux - 无法使用来自 Gitolite 服务器的 HTTP 克隆存储库

git - 如何在git中将文件 "Un-push"?

git - `docker build` 根据安装顺序挂起

php - 我可以在没有 ssh 访问权限的情况下在 PHP 中使用 shell_exec 或反引号吗?

git - 删除精选的提交

git - 如何限制Jenkins中组织扫描后自动构建触发?

git - 每次都克隆 jenkins git 插件