在 Git 中重新附加头部
Git 仓库可以定义为一组对象和引用。分支是我们用来展示我们工作的对象。Git 还处理引用特定分支中提交的标签。
commit
可能是源代码在某个时间点使用的状态。Commits
包括父辈和子辈,以及关于谁创建了提交以及何时创建的完整数据。提交
作为分支中的对象放置在仓库中。
HEAD
引用指向当前分支中最新的最后一次提交。HEAD
指针是对当前签出分支的引用,它指向分支的顶部。
但是,你可以在不签出分支的情况下及时返回。你可以使用 HEAD
指针来抓取分支中的任何提交,然后你可以使用索引轻松抓取文件的任何版本。
你可以使用 HEAD
指针和索引指针对 Git 中称为 分离 HEAD
状态的特定提交执行签出
。此外,你可以签出特定提交并根据分支中的特定提交创建新分支。
如果我们只是偶尔这样,这不会成为问题。但是,如果我们重复很多次,我们很快就会开始想知道如何回到我们正在处理的那个分支。
解决方法很简单,在我们签出一个分支之前,我们应该使用命令 git checkout master
。此命令将我们带回到提交完成之前我们正在处理的分支,但它不会影响我们正在检查的提交。
一个干净的解决方案是建立一个新的 Git 仓库,专门用于保存补丁系列,并使其可供其他人随时提取最新的分支。
这些情况非常罕见,以至于实现分离 HEAD 的可用性和性能成本超过了它们的好处,因此 Git 目前缺乏此功能。Git 可以修改提交。但是,不可能修改分离的 HEAD 上的最后一次提交。
Git 有一种方法来永久删除提交,方法是创建一个秘密分支,在该分支中记录提交数据,然后从 HEAD
永久删除提交。但是,此功能仅在单个提交与 HEAD
分离时可用。如果一个提交有多个父级,则不可能从该分支中删除它。
Git 中的头部分离
但是,当我们切换到另一个分支时,情况就不同了。如果我们检查了我们的工作目录,它会更新为 HEAD
,我们不能再修改其中的文件,或者如果它们与我们切换到的分支不冲突,我们可以创建一些新的更改。
在这种情况下,HEAD
与当前分支分离。同时,我们可以使用 git checkout
命令更改分支,而无需将工作目录更新为 HEAD
,因此 HEAD
可以在附加的同时分离。
这很令人困惑,但如果我们想要在不快速接触工作目录的情况下在分支之间切换或切换到不同的分支并同时签出新的工作目录时,它会派上用场。我们可以使用 git checkout -b <newbranchname> <commit>
来执行此操作。
我们可以这样执行;只需检查我们想要的分支。
$ git checkout <branch>
例如:
$ git checkout master
如果我们想保留我们正在处理的更改,我们应该创建一个新分支或将我们的更改存储在分支中。任何不能成为我们分支名称的最近提交的签出
都会给我们一个分离的 HEAD。
当 HEAD
分离时,提交看起来很正常,除了没有更新命名分支。它就像一个未知的分支。例如,我们可以说,如果我们先检查一个远程分支,然后再跟踪它;最终,我们将得到一个分离的 HEAD
。
相关文章
如何在 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 命令,但这很麻烦,尤其是当我们有大量不冲突的文件时。