课程 17 · 日常工作
跟踪文件的历史记录和行作者
将 README 审核行归因于 Maya,将页脚提醒归因于 Leo,使用文件历史记录和责任,而不将作者身份视为代码批准。
- 级别: 中级
- 阅读 2 分钟
- 5 分钟的视频
- 已更新
- 在这节课之前: 安全地忽略文件并清理未跟踪的工作
进度已保存在此浏览器中。
播放时会加载来自 YouTube 的视频(隐私增强模式)。
你将学到什么
- 将文件历史记录与当前行属性分开。
- 独立阅读作者和提交者。
- 检查早期的责任而不检查提交。
- 将归属证据与安全信任分开。
开始之前
从第 15 课结束的地方开始:main 带有忽略提交、clean; README.md 仍然是原始的 README,index.html 包含第 11 课中 Leo 的页脚。已发布的功能和 v0.1.0 标签保持不变。
该视频是在 Ubuntu 24.04 上使用 Git 2.52.0 和 GitTree 2.0 录制的:README.md 保存在应用程序中,Maya 的提交是作为队友准备本地进行的,历史记录和责备视图在应用程序中打开;之前的状态和指责读回在终端中运行。 macOS 或 Windows 上没有运行任何内容,并且 Ubuntu 是唯一记录的 Linux 系统。 GitTree 的源 Git 版本是 2.39.0。
GitTree 要求您登录;免费计划涵盖了这里的每一步。不需要提供商帐户、专业版/试用版、API 凭证或互联网服务。本地裸源不是 GitLab 或 CI。所有身份均使用 example.com;切勿在源代码检查中运行本课程。
通过 GitTree 或本地路径以相同的输入进行突变,而不是连续进行。只读验证可以遵循其中任何一个。任何被描述为终端工作的准备工作都被标记为本机准备,而不是发明的应用程序功能。
概念和状态效应
文件历史记录列出了按路径/历史规则选择的提交; Blame 将当前行归因于在所选选项下最后引入它们的提交。两者都没有对谁设计了某个功能进行完整的社会解释。
作者和提交者可能不同。这个装置故意在她的承诺中使用相同的虚构玛雅身份,在他的承诺中使用里奥的身份。姓名/电子邮件是元数据,而不是所有权证明或可信代码。
忽略空格和跟随移动的行可以更改归因答案,而无需更改文件字节或历史记录。从选定的受指责的提交后退一步,检查其前身;选择不是结账。
显式 README 提交仅推进 main。随后的历史记录/指责选择和切换会更改应用程序视图状态;没有发生索引、工作、本地分支或服务器突变。
准备准确的项目状态
在原始主文件上保存完整的 README_MAYA 下面。本机准备仅将 git -c user.name/user.email 用于此一次提交,而不是全局配置或误导性的仅限作者的覆盖。捕获实际生成的元数据。
完整的文件输入
仅在下面指定的阶段保存。这些是完整的 UTF-8/LF 正文,最后有换行符;永远不要粘贴 Markdown 栅栏。未更改的可运行文件继承命名输入。单独变体中的版本不得覆盖原始版本。
自述文件.md — README_MAYA
# GitTree Features
A fictional landing page used to learn Git and GitTree.
All people and addresses in this repository are fictional.
No form submits information to a server.
Review changes deliberately and preserve useful work.在GitTree
调色板:Command+Shift+P(在 Ubuntu 上为 Ctrl+Shift+P);输入确切命名的命令并选择它。命名引用操作使用该行的上下文菜单,而不是无参数的调色板快捷方式。
- 显示文件;打开 README.md 并保存完整的 README_MAYA。查看添加的审核行。
- 使用下面明确的虚构身份本地提交添加;标记此队友准备。不要声称该应用程序重写了现有作者。
- 通过“显示文件”打开 README.md,然后打开 README.md,文件视图有四个选项卡:File、Changes、Blame 和 History。选择 History:它仅列出此文件的提交,Maya 位于顶部。选择 Maya 的提交。
- 检查路径差异和元数据;使用历史列表 ArrowUp/ArrowDown 可以检查另一个修订版本而无需签出。
- 在 README.md 上选择 Blame。标头读取“Blame @”一个简短的提交 ID,并且各行按提交分组;单击添加的行。期待 Maya 的实际主体和身份,而不是发明的固定 SHA。
- 打开index.html并选择Blame;独立检查页脚行的狮子座归属。
- Ignore whitespace changes 和 Follow moved lines 是 Blame 视图的显示选项。单击提交的组,选择 Blame before this commit 以查看原来的指责,然后选择 Back to the later blame。
- Back to Graph; Jump to HEAD(在 Ubuntu 上按 Ctrl+Shift+H)。检查后确认原始主干和未改变的实际尖端是否清洁。
对于每个普通提交:Summary 是规定的主题;描述为空;修改先前的提交、跳过挂钩、添加签署者、不同的作者、提交后推送以及允许空提交;没有共同作者。仅暂存指定的文件,然后将更改提交到 N 个文件一次(文件为一个),或者使用 Command+Enter 作为替代方案。等待真正的结果。明确修改的课程仅更改所述选项。
在航站楼
保存 README_MAYA 后:
git add -- README.md
git -c user.name="Maya Chen" -c user.email=maya@example.com commit --quiet -m "docs: explain deliberate review"
git log -1 --format='%an <%ae>%n%cn <%ce>' -- README.md
git blame --line-porcelain -- README.md
git blame --line-porcelain -- index.html
git status --short提交成功。实际作者查询包括:
Maya Chen <maya@example.com>
Maya Chen <maya@example.com>完整的指责输出包括实际变量 SHA/时间和每行记录。对于新的 README 行,经过验证的记录字段包括作者 Maya Chen、作者邮件 <maya@example.com>、摘要文档:解释有意审查,然后是制表符前缀的审阅有意更改并保留有用的工作。页脚记录标识了 Leo Okafor 和他的提醒提交;这必须根据实际的树来衡量,而不是为每个 HTML 行发明一个统一的作者。最终状态为空。
只读替代方案:
git log --follow --format='%s' -- README.md
git blame -w -- README.md
git blame -M -- README.md这些选项回答不同的归因问题;输出布局是特定于 Git 版本的,并且被捕获,而不是被瓷田摘录所取代。
结果
Where you end: Maya 的一项自述文件添加内容已作为文档提交:解释对 main 的有意审查。将新行归咎于玛雅,将页脚归咎于利奥;检查使 HEAD/index/work 干净且未更改。
常见错误
- 将责备称为可责性分数。
- 假设作者始终等于提交者。
- 检查提交只是为了检查其行。
如果出现问题
清除视图选项或返回到稍后的指责/跳转到 HEAD。导航无需重置。如果归属不同,请在编辑历史记录之前检查实际路径、修订版本和空白/移动设置。
检查你的理解情况
回答每个问题,然后阅读原因。标记为“必填”的问题将有助于完成本课程。
0 个(共 6 个)正确
正确回答所需的问题以完成课程。
在此浏览器中检查。
练习
使用实际的线瓷记录证明 README 审查行属于 Maya,页脚属于 Leo。在单独的只读查询中切换 -w 并解释为什么此处未更改的属性并不能证明该选项永远不重要。
您自己的确认:该网站无法看到您的计算机。
要完成本课程,请正确回答所需的问题并确认实践练习。
回顾
- 历史和指责回答了不同的问题。
- 元数据不是信任。
- 检查不移动HEAD。
有关的
术语表介绍
责备——文件历史记录 — ¡¡¡¡¡¡作者 — বালা;提交者 — ?????
视频文字记录
视频的旁白,逐条提示。
显示成绩单
- 从确切的检查点开始。
- 命名分支、索引 和工作版本。
- 仅准备单独的课程副本。
- 保存完整的审核文档。
- 记录虚构 明确队友身份。
- 文件历史记录遵循所选路径。
- 检查元数据,无需 检查提交。
- 读取添加行的实际归属。
- 单独检查 Leo 的页脚。
- 查看选项可以更改 归因问题。
- 返回而不改变分支。
- 责备回答什么?
- 归因是一段历史 询问,而不是社会判断。
- 哪些区别很重要?
- 元数据和查询的版本 确定所显示的证据。
- 选择旧文件修订版:HEAD?
- 检查选择查看,而不是结账。
- 更改查询以忽略空格:字节?
- 该选项更改归因 计算,不存储内容。
- 不同的责备结果:首先检查?
- 不同的查询输入可以合法地 产生不同的归因。
- 用什么来证明结果呢?
- 检查线路证据并 独立存储库状态。
- 验证实际结果, 不仅仅是一条消息。
- 在行动之前预测改变的输入。
- 在恢复之前保留有用的工作。
- 在继续之前证明检查点。
- 保留验证结果 以便下一步。