分支是 Git 的核心概念,它可以帮助你为团队协作设置分布式工作流,并使你的开发过程更加高效。

当你使用版本控制并跨分支分发功能时,你的本地计算机和 GitHub 上的在线仓库之间存在大量通信。在此过程中,你可能需要重置回项目的原始副本。

如果重置分支让你感到害怕,那么请不要担心——本文将介绍远程分支、remote head,以及如何轻松地将远程分支重置为 remote head。

准备

  • 如何使用终端的基本知识
  • 已安装 Git(如果还没有,请在此处了解如何安装 Git
  • GitHub 和仓库的基本知识
  • 面带笑容 😉

Git 中的分支是什么

分支是你将在 Git 和 GitHub 中经常使用的核心概念。分支可帮助你管理一个项目的不同版本。

main 分支始终是仓库中的默认分支,被视为“生产和可部署代码”。你可以从 main 分支创建新分支,例如 prod-stagingprod-current

Screenshot-2021-02-27-at-7.19.26-PM
https://github.com/freeCodeCamp/freeCodeCamp 的所有分支

Git 中的远程分支是什么?

远程分支是指向远程仓库(托管在网络或 GitHub 等站点的项目版本)中的分支状态。

克隆仓库时,你从网上的仓库或称为远程的内部服务器(它看起来类似于(remote)/(branch))中提取数据。

Git 中的 origin(或 Remote Head)是什么

单词 origin 是 Git 中创建的别名,用于替换远程存储库的远程 URL。 它代表远程上的默认分支,并且是一个本地引用,代表远程存储库中 HEAD 的本地副本。

总之,origin/HEAD 代表远程上的默认分支,当你从网络上克隆存储库时自动定义该分支。

Screenshot-2021-03-08-at-8.23.47-AM

如何在 Git 中将远程分支重置为 Origin

现在你已经了解了远程和分支如何工作的背景知识,让我们解决我们的问题,并使用 git reset --hard 命令将远程分支重置为 origin。

在你执行此操作之前(如果这是你第一次执行),请确保在重置之前备份你的分支,以防出现问题。你可以像这样备份它:

git commit -a -m "Branch backup"
git branch branch-backup

现在运行下面的命令将你的远程分支重置为 origin。如果你有不同的远程和默认分支名称(不是 originmain),只需将它们替换为适当的名称。

git fetch origin
git reset --hard origin/main

如果你创建了一些新文件或目录,它们可能在重置后仍然存在。你可以使用以下命令删除上一个分支中不受版本控制的文件来清理工作树。

git clean -xdf
  • -x 标记删除所有未跟踪的文件,包括忽略的构建目录
  • -d 标记允许 Git 在未指定路径时指向到未跟踪的目录
  • -f 标记会覆盖默认的 Git 清理配置,并开始清理未跟踪的文件和目录

小结

如果你的远程仓库的名称不是 “origin”,并且远程仓库中的分支名也不是 “main”,请不要忘记使用适当的名称更新上述命令。你始终可以运行 git remote show origin 来检查这一点。

我希望这篇文章能让你更轻松地使用和重置分支。谢谢阅读! 💙

原文:Git Reset to Remote Head – How to Reset a Remote Branch to Origin,作者:Bolaji Ayodeji