GIT是最流行的代码版本控制系统。这一系列文章引入了一些高级别的git方法,以帮助我们更好地利用git的能力。本系列中有8篇文章,这是第一个。
GIT中的提交可能是以下两种情况之一:
本文将讨论如何构建后一种类型的提交,换句话说:“完美”提交。
Git Advanced系列:
为什么要提交干净且良好的提交意见很重要。是否有必要以谨慎和体贴的方式写和提交?您不能只是将Git视为无聊的备份系统吗?让我们回顾上述示例。
如果我们只是遵循首选(只要进行修改,我们就会塞入提交中),提交将失去很多价值。提交和提交之间的分离已经变得非常随意。似乎没有理由将更改变成提交而不是其他提交。很难找到想要的东西。
如果我们遵循第二种方式,我们只需要在提交期间的相关内容中制定更多的计划和规则。但是最终我们将获得非常有价值的奖励:清洁历史!这些提交可以帮助我们了解发生了什么并解释复杂的更改以一种可以理解的方式。
那么我们如何创建更好的提交?
创建一个更好的提交,以在GIT中创建更好的提交需要了解一个核心概念:分期区域。
为此目的创建了临时存款区域,以便开发人员可以选择以非常细腻的方式选择提交的部分提交部分。此外,与其他版本的控制系统不同,GIT强迫使用临时存款区域。
不幸的是,临时存款区仍然很容易被忽略。所有本地更改将简单地接受一个简单的时间,并将其标记为下一个提交。
确实,有时候这是一种非常有用和有效的方法。但是很多次,我们最好停下来看看所有更改是否真的与同一主题有关。也许选择两个或三个独立提交可能是一个更好的选择。
在大多数情况下,保持较小的提交比保持大型提交更有意义。专注于单独的主题(而不是两个,三个或四个),这通常使阅读更易于阅读。
临时存储区域允许我们仔细选择每个人以输入下一个提交的更改:
这只会将这两个文件标记为下一个提交,并为将来提交或进一步编辑留下其他更改。
简单地停止,应该有意识地选择的内容应放入下一个提交中,这对我们很有帮助,但是可以更准确地完成,因为有时甚至一个文件中的更改都属于多个主题。
看看一个真实的例子。您可以使用“ git diff”命令或git桌面gui(例如塔[2])查看“ index.html”文件中的详细更改:
现在,我们尝试添加到添加选项:
此命令表示GIT检查文件“补丁”级别:GIT将帮助我们检查文件中的所有更改,然后询问是否将其添加到每个块的临时存储区域:
我们为第一个块键入y(表示“是”),为第二个块键入n(表示“否”)。您可以在下一次将文件的第一部分更改为未来,更多的编辑器。
由于我们讨论了“完美提交”的测试代码,因此我们不能忽略测试的主题。如何准确地“测试”代码当然具有不同的方式,但是“测试很重要”的概念已经旧了。实际上,如果是代码尚未经过适当的测试,许多团队拒绝认为该更改已经完成。
您是否仍然不愿测试自己的代码?让我们澄清一些关于测试的误解:
总而言之,作为开发的一部分进行测试可以确保我们可以使代码库更强大,同时帮助我们成为更好的开发人员。
有价值的提交信息不是将GIT用于版本控制的一种特殊方法。此外,正如我们已经讨论的那样,提交不是任意保留存储。提交的存在可以帮助我们和团队成员了解项目中发生的情况。良好的提交信息可以更好地确保这一点。
但是什么是好的提交信息?
让我们从主题行开始,目标是简要介绍发生的事情。当然,简单是一个相对概念。一般的经验规则是在50个字符中控制主题。顺便说一句,如果您很难想到简短的内容,则可能表明您提交了太多主题!它可以分为多个单独的提交。
如果您使用更改符号和额外的空气线来结束主题,则git将知道下面的文本是消息的“主题”。在这里,有更多的空间来描述发生的事情。这些问题:
如果您在写消息时牢记这些问题,则可能会对发生的事情进行有用的描述,并最终在尝试理解提交时(一段时间后)受益。
除了提交消息内容的上述规则外,许多团队还关心格式:要就角色限制,软或硬切换等达成协议。这些将有助于在团队中更好地提交。
为了更轻松地遵守这些规则,我们最近在Git Desktop GUI塔中添加了一些功能:例如,您可以配置角色数量或根据自己的喜好自动更改行。
出色的代码库包含许多出色的意见书,以使任何想要使他们的代码库越来越好的开发人员达到这一崇高目标:不断提出出色的提交!我希望我能证明这一点(一个)绝对值得追求这一目标,(b)实现它并不难。
如果您想了解有关高级GIT工具的更多信息,则可以免费检查“高级git套件[3]”:这是一个简短的视频集合,例如分支策略,交互式折叠,反式倒流,提交和其他主题。
参考:[1]在git中创建完美的提交:https://css-tricks.com/creating-person--person-in-git/ [2] git塔://www.git-tower.com [3]git套件:https://www.git-tower.com/learn/git/advanced-git-d
你好,我是你的粉丝。我已经在摩托罗拉完成了研发。现在,我已经在Mavenir完成了技术工作,并且我一直对沟通,网络,后端建筑,Yunyan,DevOps,CICD,CICD,Blockchain,AI和其他技术保持着浓厚的兴趣。我通常喜欢阅读和思考,我相信持续的学习和成长,欢迎一起交流和学习。Wechat公共帐户:DeepNomind
