分享

像高级工程师一样使用 Git

 InfoRich 2023-03-27 发布于江苏

Git 是一款非常强大的工具,当您知道如何使用它时,会感觉非常棒。我已经在团队和项目中使用了 Git 的这些功能多年。尽管我仍在形成一些工作流程的意见(例如squash 与 not squash),但核心工具功能强大、灵活(也可脚本化)!

查看 Git 日志
Git 默认的日志查看方式并不是很友好。
git log 命令很基础
使用 git log 命令会给您一些信息,但它的精度非常高,并且通常不是您要查找的内容。
git log

Image

说实话,这些日志并不能给任何人留下深刻的印象。它们很无聊,而且充满了您目前不需要的信息。您想要对项目中正在发生的事情有一个高层次的理解。
但是,我们有一种更好的方式。
增强可视性的 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
Image
怎样!这些提交记录看起来是不是很棒!甚至还有一个类似于分支树的图形。
这些提交记录可以告诉你谁在做什么、更改是什么时候发生的,以及你的更改如何适应更大的项目结构。
使用 --graph 参数可以在左侧添加树状图,虽然它可能不是最时尚的图表,但它有助于可视化项目分支中的更改。
使用 --format 参数可以自定义提交记录的格式。你可以选择预设格式,或像下面的示例一样编写自己的格式。
使用 --all 参数可以包括所有的引用、标签和分支(包括远程分支)在提交记录中。如果你不需要所有的信息,可以根据需要进行调整。
理解特定的提交记录
经常需要了解某个特定的提交记录所做的更改。git show 命令可以显示提交记录更改的高级视图,还可以让你查看特定文件的更改。
查看提交记录摘要:
git show <commit> --stat

Image

使用 --stat 标志,你可以查看提交记录摘要以及更改的文件以及更改的详细信息。
查看提交记录中特定文件的更改
如果你想深入了解某个特定文件中的具体行更改,可以使用带有文件路径的 git show 命令。
git show <commit> -- <filepath>

Image

这将为你提供特定文件的行更改。默认情况下,它将显示行更改以及文件中更改行周围的三行,以便你了解更改行的上下文。
进行更改
你在项目上创建了一个分支,在分支上提交了一些更改,并准备将这些更改合并回主分支。由于你创建分支以来,另一位工程师也对同一文件进行了更改。😱
如果你使用像 GitHub 这样的服务,你的 PR 将告诉你是否有合并冲突。

Image

在你将更改推回主分支之前,Git 会提示你解决这些合并冲突。这是很好的,因为你不想摧毁别人所做的所有努力。
为了开始本地解决这个问题,通常会有两种路径可供选择:合并或变基。
git merge vs git rebase
当主分支上有你想要合并到你的分支中的更改时,你可以选择将这些更改合并进来,或者从另一个点上重新变基你的分支。
merge 命令将从一个分支中提取更改,并将它们合并到另一个分支中,并形成一个合并提交。
git merge origin/main your-branch
而变基命令则调整了分支实际分支出去的起点(即将分支移动到基础分支上的一个新起点)。
git rebase origin/main your-branch
通常,当上游分支(如 main 分支)中有你想要包含在你的分支中的更改时,你会使用变基。而当一个分支中有你想要放回主分支的更改时,你会使用合并。
通常情况下,如果在上游分支(如main分支)中有一些变更,你想将它们包含到你的分支中,那么你会使用 rebase。如果在一个分支中有一些变更,你想将它们合并回 main 分支中,那么你会使用 merge。
感谢大家的阅读,祝大家度过美好的一天!

感谢 Linux迷 www. 的精彩分享。
OK,这就是本文的内容。如果还有什么疑问,请在下面的评论区告诉我们。
需要 Linux 精美艺术壁纸的朋友请加小编微信linuxgs口令壁纸)。
来自:Linux迷

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多