Git 推送到另一个名称不同的分支
git push
具有丰富的选项,可让你使用 Git 的全部功能。其中之一是它的 source:destination
refspecs
参数。
我们使用这些 git push
到具有我们选择的名称的特定分支。最后,我们将看到一些用例,如果我们 git push
一个新分支而不是进入与我们本地名称相同的分支,我们会在工作流程中获得巨大收益。
git push
命令及其丰富的选项集
Git 并不限制我们使用简单的 git push
命令简单地推送到远程。相反,它为我们提供了几个强大的选项来让我们实现我们想要的结果。
其中两个是 [remote_repe]
和 [src:dst]
refspecs
参数。
让我们看看这些参数如何帮助我们 git push
到另一个分支。
git push [remote_repo] [refspecs]
[remote_repo]
指的是我们本地系统中的远程仓库。大多数时候,这个名字是 origin
。
[refspecs]
是 git push
到特定分支的有趣参数键。我们将在本文结尾处详细查看 refspecs
。
它的格式为:src:dst
,其中 src
指的是我们要推送的本地分支。dst
是对我们要推入的远程分支的引用(或名称)。
它默认与 src
参数同名,但我们可以通过显式提供 dst
值来选择 git push
到特定分支。
我们首先设置一个本地仓库并将其链接到远程仓库。然后,我们还在本地仓库上创建一个新分支。
我们的远程仓库在本地没有 feature_branch
。
我们现在将 feature_branch
推送到另一个具有新名称的分支。
git push origin feature_branch:teamX_featureY
我们现在看到 feature_branch
已被推送到我们遥控器上具有不同名称的新分支中。
请注意,每次推送时都必须传入这些参数;否则,dst
参数将默认为本地仓库中分支的名称。然而,Git 为我们提供了一个简洁的快捷方式,以节省我们重复输入这些内容的工作量。
git push
中的简洁快捷方式,用于设置 refspecs
参数一次并多次使用
在 Git 中,分支的上游名称是你始终将其推送到的分支。你可以使用以下命令设置此值。
git branch --set-upstream-to <remote_branch>
但是,你也可以通过简单地传递 -u
标志来使用 git push
运行此命令。
git push -u origin local:different_remote
如果你这样做,你的本地分支会在你下次推送时被推送到 different_remote
分支中。所以你不需要每次都明确地命名它。
我们还在远程仓库中看到了这个新的上游分支。
你必须使用以下命令更改 config
文件中的 push.default
值。
git config push.default upstream
如果你现在推送 second_feature
而不提及 dst
参数,Git 会自动将其推送到 different_remote
。
git push origin second_feature
我们何时希望将 Git 推送到另一个分支
我们想要 git push
一个新分支的一些用例是:
-
假设你开发了一个很酷的功能或模块,并且你希望将其推送到你从事的多个项目中。你甚至会喜欢一个简单的通用功能,例如你设计的万圣节主题菜单,并且希望在你的许多应用程序中使用它。
你需要将其推送到具有不同名称的每个项目中。
-
有时,中央(远程)仓库中的命名方案与你的本地设置不匹配。当你处理涉及大型团队的多个项目时尤其如此。
在这种情况下,带有
refspecs
选项的git push
命令可以为你节省一天的时间。
最后,在我们签字之前,让我们深入研究一下 refspecs
。
Git Refspecs
Git 在内部存储对仓库中所有对象的引用。这使得快速访问各种 Git 对象变得容易,而无需总是使用神秘的 SHA
哈希。
在 Git 中,我们将(双关语)这些引用称为 refspecs
。
这些 refspecs
存储在仓库内的特殊目录中。
-
refs/heads
目录存储对本地仓库中对象的引用。 -
refs/remotes
引用了你的远程仓库 Git 对象。
相关文章
如何在 Windows 系统中卸载 git
发布时间:2023/04/09 浏览次数:223 分类:Git
-
在这篇简短的文章中,我们将学习如何卸载 Git,以及如何在从个人计算机的目录中卸载 Git 后删除这些文件。
Git 如何重命名本地分支
发布时间:2023/04/09 浏览次数:64 分类:Git
-
大多数情况下,重命名分支机构是由于上述情况。 因此,在本教程中,我们将学习使用下面提到的技术更改本地 Git 分支的名称。
重命名 Git 存储库中的文件和目录
发布时间:2023/04/09 浏览次数:102 分类:Git
-
在本文中,我们将讨论 git 中的重命名过程。 我们使用 Git Rename 来更改工作目录中文件和文件夹的名称。
在 Git 中取消初始化存储库
发布时间:2023/04/09 浏览次数:187 分类:Git
-
本本文介绍如何通过 Git 命令行取消初始化 Git 存储库。git init 命令开发一个新的空置 Git 存储库。 它还用于重新初始化已经存在的 Git 存储库。
Git 仓库名称该如何命名
发布时间:2023/04/09 浏览次数:208 分类:Git
-
使用 Git 时,选择一个简洁且最新的存储库名称是一项艰巨的任务。本教程介绍了如何以独特的方式命名 Git 存储库。
配置 Git 以忽略文件模式更改
发布时间:2023/04/09 浏览次数:67 分类:Git
-
本文讨论配置 Git 以忽略文件更改 chmod 所需的步骤。 如果您更改 Git 正在跟踪的文件的权限,系统将在该文件中注册更改。
在 Git 中暂存已删除的文件
发布时间:2023/04/09 浏览次数:93 分类:Git
-
本文讨论了在 Git 中暂存已删除文件的必要步骤。我们知道 rm 命令可以删除一个文件,而无需将其从工作目录中移除。 那么,我们如何暂存已删除的文件以进行提交呢?
在 Git 中显示冲突文件
发布时间:2023/04/09 浏览次数:139 分类:Git
-
本文讨论在 Git 中列出冲突文件的最简单和最干净的方法。 我们可以使用 git status 命令,但这很麻烦,尤其是当我们有大量不冲突的文件时。