原文:Git Checkout Remote Branch Tutorial,作者:Dillion Megida

Git 是一个版本控制工具,允许你维护和查看应用程序的不同版本。当一个更新破坏了你的应用程序时,Git 允许你将这些更新恢复到以前的版本。

除了版本控制之外,Git 还允许你同时在多个环境中工作。在这种情况下,多个环境意味着分支

为什么需要分支

当你使用 git 时,你将拥有一个主环境(即主分支)。当你的应用程序准备好投入生产时,此特定分支包含部署的源代码。

当你想要更新应用程序时,你还可以向此分支添加更多 commit 提交(更改)。对于较小的更改,这可能没什么大不了的,但对于较大的更改,这样做并不理想。这就是存在其他分支的原因。

要创建和使用新分支,请在项目目录的终端中使用以下命令:

# 创建一个新的分支
git branch branch-name
# 切换到新的分支
git checkout branch-name

在这个新分支上,你可以创建新的更改。然后当你完成后,你可以将它们与主分支合并。

分支的另一个好处是它们允许多个开发人员同时处理同一个项目。如果你有多个开发人员在同一个主分支上工作,那可能是灾难性的。你在每个开发人员的代码之间进行了太多更改,结果通常是需要合并冲突。

使用 Git,你可以跳到另一个分支(另一个环境)并在那里进行更改,同时在其他分支中继续工作。

Git Checkout 远程分支是什么意思

当你使用 Git 开始一个项目时,你会获得两个环境:本地 master 分支(存在于你的计算机中)和远程 master 分支(存在于 Git 支持的平台中,例如 GitHub)。

你可以将 commit 更改从本地 master 分支推送到远程 master 分支,也可以从远程分支中提取更改。

当你在本地创建一个分支时,它只存在于本地,直到它被推送到 GitHub 并成为远程分支,如下所示:

# 创建一个新的分支
git branch new-branch
# 切换到新的分支
git checkout new-branch
# 创建一个更新
touch new-file.js
# 提交更新
git add .
git commit -m "add new file"
# 推送到新的分支
git push --set-upstream origin new-branch

在上面的示例中,origin new-branch 成为远程分支。你可能已经注意到,我们创建了一个新分支,并在推送到新的远程分支之前对其进行了更改。

但是,如果远程分支已经存在,并且我们想将分支及其所有更改拉取到我们的本地环境中呢?

这就是 Git Checkout 远程分支。

如何 Git Checkout 远程分支

假设另一个开发人员创建了一个远程分支,而你想要拉取该分支,可按照以下步骤:

1获取所有远程分支

git fetch origin

这将从仓库中获取所有远程分支。origin 是你要定位的远程名称。所以如果你有一个上游远程名称 upstream,你可以调用 git fetch upstream

2、列出所有可以 checkout 的分支

运行以下命令列出所有可以 checkout 的分支:

git branch -a

这条命令的输出是所有可以 checkout 的分支。你会发现远程分支的前缀是 remotes/origin

3从远程分支拉取更改

请注意,你不能直接在远程分支上进行更改。因此,你需要该分支的副本。假设你想复制远程分支 fix-failing-tests,运行以下命令:

git checkout -b fix-failing-tests origin/fix-failing-tests

将执行:

  • 创建了一个名为 fix-failing-tests 的新分支
  • checkout 那个分支
  • 将更改从 origin/fix-failing-tests 拉到该分支

现在你有了那个远程分支的副本。此外,你可以将提交推送到该远程分支。例如,你像这样推送一个新的提交:

touch new-file.js
git add .
git commit -m "add new file"
git push

这会将已提交的更改推送到 origin/fix-failing-tests。如果你注意到,我们不必指定我们将更改推送到何处(例如 git push origin fix-failing-tests),那是因为 git 会自动设置本地分支来跟踪远程分支。

总结

Git 分支使应用程序开发过程中的协作变得非常容易。

借助分支,不同的开发人员可以轻松地同时处理应用程序的不同部分。

通过 checkout 远程分支,协作甚至变得更加无缝,因为开发人员还可以在其本地系统上复制远程分支,进行更改,并推送到远程分支。