当前位置: 首页 > 图灵资讯 > 技术篇> Git五大高级功能及指令

Git五大高级功能及指令

来源:图灵教育
时间:2023-04-03 15:00:38

Git它是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小到大项目的所有内容。关于Git的基础知识—我们使用Git的前提是如何工作存储库,如何创建分支和提交变更,以及如何合并这些变更和请求,但一些强大的功能需要一些高级命令才能实现。本文将为您带来Git五大高级功能指令

  • 简化提交历史(git rebase)

当项目中有两个分支(如开发分支和主要分支)时,两个分支都需要合并和更改git merge命令是一种自然而直接的方法,将它们结合起来。A merge将一个分支的发展历史添加到另一个分支的合并中。虽然这两个历史记录可以完全保留,但项目的整体历史记录可能很难掌握。在某些情况下,我们需要得到更简单、更干净的结果。

git 虽然rebase命令也合并了两个分支,但做了一些改变。A git 为了将另一个分支从创建分支的位置合并到分支,rebase重写了一个分支的提交历史记录。这可以减少分支的嘈杂和线性提交历史记录。但这也意味着删除了其他分支和合并过程的潜在有用细节。

为此,rebase最好在将多个私人分支合并到公共分支之前,将其合并为一个干净的提交历史记录。这样,最大的好处是:rebase使提交历史更线性,噪音更小,不需要模糊相关项目提交历史的关键细节。

二、清理合并 git merge——squash)

减少合并和后续提交干扰的另一种方法是git squash选项用于merge中。squash从一个传入分支获取所有提交,并将其压扁为单一合并提交。

压缩合并的优点是选择如何应用生成的临时存储文件。您只能一次提交整个更改集或几个文件,这些更改密切相关。如果输入分支的提交历史记录仅在分支的上下文中有用,或者如果它来自私人分支(无论如何都将被丢弃),则压缩合并也非常有用。和和rebase一样,这种技术最适合向master提交内部分支,但如有必要,也适用于请求。

三、加快Bug搜索(git bisect)

代码中微妙的回归是最难理解的。试着想象一下,你刚刚在代码库中添加了一个测试来发现错误,但不确定错误何时首次出现……而且你的仓库里有成百上千的提交。git bisect命令使您大大减少因搜索错误而提交的代码量。

启用bisect(git bisect start)之后,将在代码库中指定两点绑定搜索:一个知道情况不好,另一个知道情况仍然很好。bisect将在不良提交和良好提交之间检查一次提交,并允许您进行操作测试。在提交损坏事件之前,重复第二进制细分过程。

git bisect是提交历史悠久、复杂的大型代码库的天赐之物,为您省去了上次提交的麻烦,加快了发现错误的过程。此外,它通过搜索和测试大大减少了需要做的搜索和测试。

四、重新申请提交( git cherry-pick)

许多高级Git命令只有在狭义的特定情况下才有用,即使是中高级用户也可以完全忽略它们。然而,当你遇到这些特定的情况时,你会觉得当你使用这本书时,你就不那么讨厌了:

1.提交错误的分支,并希望快速应用于正确的分支。

2.中继应用修复程序应在分支上进行,然后继续进行其他关于中继代码的工作。

这个时候,我们不妨考虑一下git cherry-pick命令。它允许您提交给定的提交——任何来自任何分支的提交——并将其应用于其他分支,而无需应用历史记录中的任何其他变化。

五、使用Git子模块优雅地组织项目

就像大多数编程语言提供导入包或模块一样,Git提供了一种方法,将一个存储库的内容自动包含在另一个存储模块(子模块)中。您可以在存储库中创建子目录,并使用另一个存储库的内容自动填写子目录。一般来说,考虑到其一致性,需要引用特定的哈希值来填充它。

详细介绍Git五大高级功能和指令知道你学会了吗考虑每个人的Git的基础不同,接触这些高级命令和高级功能可能会鼓励。因此,一些基础薄弱的学生可以观看这个网站Git详细介绍视频课程,让自己在学习中获胜Git起跑线!