Git重置原点 - 如何将本地分支重置为远程跟踪分支

305 阅读6分钟

Git是一个自由和开源的版本控制系统。它是当今最流行的版本控制系统。

Git可以跟踪一个项目随着时间推移所做的修改。这使得多个开发者可以在同一个项目上进行协作和并行工作,无论他们身在何处。

它可以让开发者查看项目的历史,了解谁做了什么修改,以及为什么要做这些修改。另外,有了Git,你可以在需要时恢复到旧版本的代码。

从本质上讲,Git可以确保开发人员都在同一起跑线上,知道项目中发生了什么。

当在一个项目上工作时,你可能面临的挑战之一是试图同步你的工作--具体来说,同步本地和远程分支。

在这篇文章中,你将学习如何重置并准确匹配本地 Git 分支和远程分支。

以下是我们要讲的内容:

  1. 什么是Git中的分支?
    1. 本地分支、远程分支和远程跟踪分支之间有什么区别?
  2. 如何将本地的Git分支重置为远程的?
    1. 保存本地分支的当前状态
    2. 做一个 git checkout
    3. 取回原点
    4. 重置本地版本库
    5. 清理任何未跟踪的修改
  3. 总结

什么是 Git 中的分支?Git 分支的简明扼要介绍

分支是版本控制的一个核心方面,也是一个需要学习的重要概念。

由于分支的存在,开发人员能够以更灵活的方式进行协作。分支使日常开发过程更加顺畅和高效。

分支是管理不同版本代码的一种方式,它就像一个指向变化快照的指针。

当你第一次为你的项目创建一个 Git 仓库时,在同一时间,主分支也被创建。

主分支是项目的主要和默认分支。它代表着你的代码的无错误、稳定和可用的版本,可以随时发布并与公众分享,它是主代码库。

但是,当你想给你的项目添加一个新的功能时,会发生什么?

在添加之前,你需要对它进行测试,确保它不会引入新的错误或干扰现有的代码。

需要有一种在不影响代码库的情况下处理新功能的方法。

而这正是分支的用武之地。

分支是实验和测试新代码的隔离空间,不会影响主分支的代码。

你可以创建一个新的分支,做你想做的改动。如果你对这些改动感到满意,你可以通过合并将它们添加到主分支中。如果不满意,可以删除该分支,而不影响项目中的主要代码。

分支还允许开发者在同一时间处理不同的功能,而不干扰对方的工作。

要了解更多关于 Git 分支的信息,请看这段解释它们如何工作的视频,并将这篇提供了如何使用它们的小抄的文章收藏起来。

Git 中的本地分支 VS 远程分支 VS 远程跟踪分支 - 有什么区别?

本地分支是一个只能在本地机器上访问的分支,它孤立地存在于那里。在这里,你可以添加文件并提交你所做的任何修改。这些修改将被保存在本地,并且只对你自己可见,在你的本地物理机上可用。

其他开发者将无法查看你的工作和你所做的修改。

你可以用以下命令创建一个名为my_branch 的本地分支:

git branch my_branch

而要列出你所有的本地分支,你可以使用git branch 命令。

为了与同一项目中的其他开发者合作,并让他们查看你所做的任何修改,你需要从本地分支推送修改到远程仓库。

这就引出了远程分支

远程分支是指存在于远程仓库的一个分支。

远程仓库,也被称为远程,通常是指托管在互联网上某个地方的仓库,如 GitHub 服务器上。远程仓库的默认名称是origin

现在,远程跟踪的分支指的是对远程分支状态的本地引用。默认情况下,分支之间没有任何联系。也就是说,你可以告诉一个本地分支去跟踪一个远程分支。

如何将本地的 Git 分支重置为远程的?

你可能一直在本地分支上工作,对项目进行了各种修改,最后发现不再需要这些修改了。

你想把它们删除,然后把该分支重置到远程分支上。

除此之外,另一个开发者可能已经做了修改并推送到了远程分支,所以你需要从远程仓库获取这些最新的修改,以达到最新的效果。

要做到这一点,你需要采取以下步骤:

  • 保存本地分支的当前状态(可选)
  • 从远程获取最新版本的代码
  • 重置本地分支
  • 清理文件(可选)

保存本地分支的当前状态

在开始之前,你可能想在另一个分支中保存当前分支的状态。

当把本地的 Git 分支重置到远程时,你会失去在本地所做的修改。

这一步是可选的,你可以选择这样做,以防出错或将来想再次回到该工作。

要保存工作,请使用以下命令:

git commit -a -m "I am saving my work"
git branch backup_work

你的工作现在被保存到名为backup_work 的分支。

做Agit checkout

通常情况下,会有一个与你想重置的远程分支同名的本地远程跟踪分支,例如main

使用下面的命令来检查本地远程主分支:

git checkout main

如果你为这个分支使用了不同的名字,请用你正在使用的名字替换main

取回原版

要获取远程仓库,以及远程仓库中代码的最新状态和版本,请输入以下命令:

git fetch origin

origin 是一个由Git创建的别名,指定了远程仓库的远程URL。通常情况下,Git 会自动假定远程仓库的名称为 。origin

如果你有一个不同的远程名称,请用你使用的名称替换origin

重置本地仓库

现在,用以下命令重置本地main 分支到远程仓库:

git reset --hard origin/main

清理任何未跟踪的修改

这一步是可选的。

使用上述命令后,你可能会有一些未跟踪的文件。

使用下面的命令来清理任何未跟踪的修改:

git clean -xdf

让我们把-xdf 标志分解开来,解释每一部分的作用:

  • -x 标志会删除被忽略的文件
  • -d 标志删除了未被追踪的文件夹
  • -f 标志删除未追踪的文件

结论

就这样,你现在已经把本地分支重置为远程分支了。

希望这篇文章对你有帮助。

要了解更多关于 Git 的信息,请查看以下免费资源:

谢谢你的阅读,祝你编码愉快 :)