0


如何在Git上设置上游分支?

概述

git 上游分支与远程分支密切相关,因为我们使用上游分支,该分支用于通过本地存储库跟踪远程存储库。每当我们想在不提供任何参数的情况下发出 git fetch 或 git pull 等命令时,我们都会从上游分支(我们使用 git set upstream 命令设置)获取或拉取数据。在设置 git 上游分支之前,我们必须有一个克隆的 GitHub 存储库。因此,每当需要从远程存储库中检出 Git 中的分支时,我们都会使用托管在远程服务器(如 GitHub)上的 git 上游分支。

先决条件

学习 git set upstream 命令的先决条件是对版本控制系统、分支和 Git 的基本了解。在了解 git set upstream 命令之前,让我们简要讨论一下它们。

分支

分支是一个独立的开发线,用于添加某些功能和修复错误,而不会妨碍主项目。因此,我们可以并行开发新功能,当开发完成后,我们可以将功能添加回主项目。默认情况下,所有 GitHub 存储库都有可用于生产的 master 分支。

因此,新分支是为修复错误和添加新功能而创建的 master 分支的副本。修复 bug 或添加新功能后,我们可以将分支合并到 master 分支中。git branch 命令使我们能够执行并行开发。该命令可以创建、重命名、列出和删除分支。

什么是 Git 上游分支?

git 上游分支与远程分支密切相关,因为我们使用上游分支,该分支用于通过本地存储库跟踪远程存储库。因此,每当需要从远程存储库中检出 Git 中的分支时,我们都会使用托管在远程服务器(如 GitHub)上的 git 上游分支。简单来说,我们可以说,每当我们想在不提供任何参数的情况下发出 git fetch 或 git pull 等命令时,我们都会从上游分支(我们使用 git set upstream 命令设置)获取或拉取数据。

要设置 git 上游分支,我们可以使用简单的命令:

git push --set-upstream origin "branch-name"

那么这个本地分支和远程分支是什么呢?好吧,本地分支是我们使用 Git Bash 或 Git GUI 在本地系统上创建的分支类型。本地分支由开发人员在其系统上创建,用于功能开发和错误修复。一旦开发人员完成了相应的分支开发,他/她就会要求项目的维护者合并这些更改,这就是开发过程的继续方式。现在,远程分支与本地分支非常相似,只是远程分支托管在远程服务器上,例如 GitHub。

请参阅下面提供的图像,了解远程分支和本地分支之间的类比。

在设置 git 上游分支之前,我们必须有一个克隆的 GitHub 存储库。为什么我们要从 GitHub 等远程服务器克隆项目?假设开发人员或开发人员团队开发了一个项目并将该项目托管在 GitHub 平台上,以便所有用户都可以使用它并查看源代码。现在,您是该产品的用户,当您查看项目时,您发现了一个可以修复的问题。那么,您将如何解决这个问题呢?你会给开发人员发消息吗?给团队发邮件?或者你会更改代码并要求项目维护人员在查看后合并更改吗?

最后一个选项是最佳选择。因此,要更改项目的内容,我们首先使用 GitHub 上的 fork 按钮或使用 git fork 命令来分叉远程存储库。现在,在分叉它之后,您将在本地系统上复制整个项目。这种项目的复制在 Git 中称为克隆。因此,您可以使用“克隆”或“下载”按钮并在本地系统上下载 zip 项目,也可以使用 git clone 命令进行相同的操作。Git clone 和 Git fork 命令用于将远程存储库克隆并分叉到我们的本地系统。

要使用 git clone 从远程存储库获取数据,我们可以使用以下命令:

git clone <*remote>*

要了解有关克隆、分叉等的更多信息,请参阅文章 - 克隆和复刻远程存储库。

为什么要为本地分支设置上游分支?

为了理解我们应该建立一个上游分支,让我们使用一个虚拟存储库。我们在 GitHub 上托管了一个远程存储库。假设我们在测试分支上设置了当前的 HEAD(本地 HEAD 分支)。我们还设置了一个远程存储库,设置为 origin/test。现在,由于我们有一个上游分支,我们获得了几个好处:

  • git push 和 git pull 操作变得更加容易,因为我们已经设置了上游分支,因此直接从上游分支获取或拉取数据。
  • 我们可以使用简单而简短的命令进行拉动和推动。我们不需要输入整个命令、分支名称、标志等。我们可以简单地使用命令:git push 而不是 git push origin development。
  • 由于上游分支已经设置好了,Git 可以告诉我们到目前为止还没有推送和拉取的未同步提交。

要跟踪信息,我们可以使用 git status 命令。例如

$ git status
  # On-branch test  # Your branch and 'origin/tes' have diverged,
  # and have 3 and 4 different commits each, respectively.
  #
  nothing to commit (working directory clean)

如何在Git中设置上游分支?

让我们看看 git set upstream 命令在各种场景中是如何使用的。

使用 Git Push 设置上游分支

我们可以使用类似于 upstream 的 -u 标志设置 git upstream 分支。要使用 git push 命令设置上游分支,我们首先使用命令创建一个分支:git checkout -b “branch-name”。众所周知,此命令不仅会创建一个分支,还会将我们移动到新创建的分支。现在,我们可以使用 git push 命令以及 -u 标志或选项来设置上游分支。相同的总命令是:

git push -u origin"branch-name"

我们还有另一个命令可以用作 git push -u origin 命令的替代品。我们可以使用 --set-upstream 命令来执行相同的操作。

git push --set-upstream origin "branch-name"

使用别名设置上游分支

我们甚至可以为 git push 命令设置别名,然后我们可以使用别名来设置上游分支。我们也可以推送 HEAD,因为 HEAD 等同于远程分支。相同的总命令是:

git push -u origin HEAD

众所周知,git config 命令用于设置任何别名,因此我们需要将该命令与要设置的名称一起使用。例如,让我们将 push 命令设置为 git push -u origin HEAD 命令的别名。

git config --globalalias. push"push -u origin HEAD"

在上面的命令中,我们使用 --global 标签,因为我们想将命令设置为全局命令。我们甚至可以使用 --local 和 --system 标签分别使命令成为存储库和系统级别的本地命令。

或者,如果我们不想妨碍原始的 git push 命令,我们可以设置 bash 别名。我们可以将新的 nash 别名设置为:

alias gp='git push -u origin HEAD'

为现有远程分支设置上游分支

我们可以使用一个简单的命令为现有的远程分支设置上游分支。当我们想要将本地分支链接到已经存在的远程分支(我们已经克隆或从主/主存储库中提取)时,此命令会派上用场。

因此,要跟踪新本地分支的分支,我们可以使用 --track 标志和 git checkout 命令。例如,让我们将测试分支设置为跟踪分支。相同的总命令是:

it checkout *--track origin/test*

检查哪些 Git 分支正在跟踪哪些上游分支

要检查哪些 Git 分支正在跟踪哪些上游分支,我们有一个非常简单的命令。我们可以使用 -v 标志/选项和 git branch 命令列出所有跟踪上游分支的分支。让我们看看相同的整体命令。

git branch -vv

结论

  • Git 是一个版本控制系统,用于跟踪代码、文档和其他有关特定代码库等重要信息的更改。
  • git 上游分支与远程分支密切相关,因为我们使用上游分支,该分支用于通过本地存储库跟踪远程存储库。
  • 每当我们想在不提供任何参数的情况下发出 git fetch 或 git pull 等命令时,我们都会从上游分支(我们使用 git set upstream 命令设置)获取或拉取数据。
  • 在设置 git 上游分支之前,我们必须有一个克隆的 GitHub 存储库。因此,每当需要从远程存储库中检出 Git 中的分支时,我们都会使用托管在远程服务器(如 GitHub)上的 git 上游分支。
  • git push 和 git pull 操作变得更加容易,因为我们已经设置了上游分支,因此直接从上游分支获取或拉取数据。
  • 我们可以使用简单而简短的命令进行拉动和推动。我们不需要输入整个命令、分支名称、标志等。我们可以简单地使用命令:git push 而不是 git push origin development。
  • 由于上游分支已经设置好了,Git 可以告诉我们到目前为止还没有推送和拉取的未同步提交。
  • 我们可以使用 -v 标志/选项和 git branch 命令列出所有跟踪上游分支的分支。
  • 要跟踪新本地分支的分支,我们可以使用 --track 标志和 git checkout 命令。
  • 我们甚至可以为 git push 命令设置别名,然后我们可以使用别名来设置上游分支。我们也可以推送 HEAD,因为 HEAD 等同于远程分支
  • 我们可以使用 git push 命令以及类似于上游的 -u 标志或选项来设置上游分支。
标签: git

本文转载自: https://blog.csdn.net/mzgxinhua/article/details/135095646
版权归原作者 新华 所有, 如有侵权,请联系我们删除。

“如何在Git上设置上游分支?”的评论:

还没有评论