出版于

开发天才

git提示

别再成为git slob!将多个相关的提交结合在一起。

样品互动式重态提示

保持您的版本历史记录整洁且可辨认为rebase

设想:

更新Java项目时,我发现似乎不再需要的属性。由于该项目是几年前创建的,而且自该工具创建以来,API规范发生了多次变化,因此这种贬值并不令人惊讶。

尽管如此,我并不肯定我的删除决定是正确的,所以我只是评论了不必要的台词并承诺了这一变化。经过进一步测试,我确定该物业是的确不必要,应更换。

我添加了一个新物业,留下了评论的作品。最终,我决定删除评论的行。这种谨慎的策略使我有3个解决所有问题的提交:从项目中删除弃用的参数。

现在GIT历史已经多个参考对这个很小的变化。我怎么能够结合那些提交进入一个单个,以便任何阅读GIT历史的人都会更轻松地看到所有变化的流程,而不是分心通过多次提及这种小变化?

解决方案:互动式重态

GIT提供了一项功能,可以重写我们的提交历史记录。主要用例是我的确切情况,我们的历史上存在一些湿润的情况,可以为将来的读者提供清理。我不会经历您可以通过rebase做的所有各种事情,但是我将准确地解释它如何解决我的问题!

我的承诺历史看起来像这样:

删除不良属性
做出无关的改变
做出无关的变化
用更新版本替换坏属性
评论不良财产

如前所述,我的目标是对删除,更换和评论我的不良财产的所有更改进行一次提交。为此,我需要像第一个相关的提交一样深入地对我的GIT历史进行更深入的改变。在这种情况下,我需要回顾“评论不良财产”提交。

执行重新恢复到该提交的重新构想是一个简单的两步过程!第一次运行git reclog并找到提交消息。回流的输出看起来像这样:

ABC123 HEAD@{0}:删除不良属性
xyc321 head@{1}:做一个无关的更改
sln331 head@{2}:进行B无关的更改
ACL097 HEAD@{3}:用更新版本替换坏属性
kds842 head@{4}:评论不良属性

我感兴趣的是头部。我可以用头〜4作为我的rebase命令中的一个参数,表明我需要一个折叠,这可以回到“评论不良财产”提交。所以让我们尝试一下!(您也可以使用提交哈希KDS842)。

跑步git rebase -i头〜4将打开文本编辑器,并以类似的格式显示提交历史记录:

选择ABC123删除不良财产
选择XYC321进行无关的更改
选择SLN331进行B无关的更改
选择ACL097用更新版本替换不良属性
选择KDS842评论不良财产

您可以编辑此文本文件以更改提交的顺序,并壁球’多个参赛作品。出于我的目的,我可以更新文件以使其看起来像:

选择ABC123删除不良财产
Supash ACL097用更新版本替换不良属性
壁球KDS842评论不良财产
选择XYC321进行无关的更改
选择SLN331进行B无关的更改

请注意,我如何移动与我的坏财产有关的两个提交,直接在最新情况下,然后用“挑选”代替“选择”。壁球’。这告诉git我不希望个人承诺他们,而应将其更改包括在与删除不良属性

保存并关闭此文件将打开另一个文本编辑器,您可以在其中自定义挤压提交的提交消息:

#这是三个提交的组合。
#第一个提交的消息是:
删除不良属性
#这是第二个提交消息:
用更新版本替换坏属性
#这是第三提交消息:
评论不良财产

将所有内容替换为您想要标记并保存的单个提交消息。

用更新版本替换坏属性

现在,GIT历史记录已重写,三个相关的提交被合并为一个条目!Git Rebase是一种强大的工具,可以帮助您保持树木清洁和整洁。请随时评论任何不清楚的事物,或者您是否有关于将来的文章的建议!

获取中型应用betway娱乐官网

一个说“在应用商店上下载”的按钮,如果单击,它将带您到iOS App Store
一个说“获取它,Google Play”的按钮,如果单击它,它将带您到Google Play商店
伊桑·克洛恩(Ethan Cloin)

B.S.在计算机科学领域,进一步发展了我的开发人员技能,以获得初级开发人员的职位。专注于后端,DevOps和Python自动化

Baidu