像高级工程师一样使用Git

时间:2021-10-01 01:21:48

海外Udemy、Coursera、Skillshare、Cantrill等平台精品编码课程,请访问 https://www.postcode.vip

Git 是一种强大的工具,当你知道如何使用它时,会感觉非常棒。 多年来,我一直在团队和项目中使用 Git 的这些功能。我仍在发展一些工作流程方面的意见(例如是否合并),但核心工具是强大和灵活的(而且可编写脚本!)。

查看 Git 日志 默认情况下,查看 Git 日志非常困难。

git log 命令很基础 使用 git log 命令可以获得一些信息。

但是它的识别率非常高,通常不是你要查找的内容。

git log

像高级工程师一样使用Git

让我们来看看实际情况。这些日志并没有给任何人留下深刻印象。它们很无聊,并且充满了你现在不需要的信息。你试图对项目中发生的情况有一个高层次的理解。
有一种更好的方法。
使用更多可视化的 git log 使用 --graph 和 --format 参数,我们可以快速获得项目中 Git 提交的摘要视图。

git log --graph --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%an%C(reset)%C(bold yellow)%d%C(reset) %C(dim white)- %s%C(reset)' --all

像高级工程师一样使用Git

哇!这些日志看起来非常好看!甚至还有一个分支树的影子。
这些日志向你展示了谁在做什么,什么时候做出了更改,以及你的更改如何适应整体情况。
–graph 将树形图添加到左侧。它不是最时尚的图表,但有助于可视化项目分支中的更改。(在此处阅读文档)
–format 允许您自定义日志的格式。有预设格式可供选择,或者您可以像这个示例那样编写自己的格式。(在此处阅读文档)
–all 包括日志中的所有引用、标签和分支(包括远程分支)。您可能不想要所有内容,所以根据您的需要进行调整。(在此处阅读文档)
查看 git log 文档,了解如何提升 git 日志的更多信息。→
了解特定提交的内容 您经常想要了解特定提交发生了什么。git show 命令可以向您展示提交中更改的高层次视图,还可以让您查看特定文件的更改。
查看提交的摘要

git show <commit> --stat

像高级工程师一样使用Git

使用 --stat 标志,您将看到提交摘要以及更改的文件以及它们的详细更改信息。
查看提交中特定文件的更改 当您想深入了解特定文件中的特定行更改时,请使用 git show 命令并指定文件路径。

git show <commit> -- <filepath>

像高级工程师一样使用Git

这将为您提供文件中特定行的更改。默认情况下,它将向您显示行更改以及文件中更改行所在位置的前后三行,以便您了解上下文。
查看 git show 文档,了解如何提升您的 git 提交理解。→Git - git-show Documentation
您在项目上创建了一个分支,在分支上提交了一些更改,并准备将这些更改合并回主分支。由于您创建了分支,另一位工程师也在相同的文件上进行了更改。 ????
如果您使用类似 GitHub 的服务,则 PR 将告诉您是否存在合并冲突。

Git 会提示您在将更改推回主分支之前解决这些合并冲突。这很好,因为您不想覆盖其他人所做的所有辛勤工作。
要开始本地解决这个问题,通常会采取两种路径之一:合并(merge)或变基(rebase)。
当主分支上有您想要合并到您的分支中的更改时,您可以选择将这些更改合并或从不同的位置对您的分支进行变基。
合并(merge)将一个分支中的更改取出,合并到另一个分支中,并创建一个合并提交。
The above translation is corrected to:
当主分支上有您想要合并到您的分支中的更改时,您可以选择将这些更改合并或从不同的位置对您的分支进行变基。
合并(merge)将一个分支中的更改取出,合并到另一个分支中,并在一个合并提交中完成合并。
git merge origin/main your-branch
复制代码
变基(rebase)调整了一个分支实际分支出的起点(即从基础分支到一个新的起点)。
git rebase origin/main your-branch
复制代码
一般来说,当上游分支(如 main 分支)中有更改需要合并到您的分支时,您会使用变基。当您想要将分支中的更改放回 main 分支时,您会使用合并。
关于压缩提交(squash)的使用,你有什么看法的补充。