你真的了解Git吗?

你真的了解git吗?

本博客中的图片来自 scott chacon、ben straub 的“pro git”

在这个博客中,您将了解有关您在编程中使用的 git 中的一些日常功能的各种精彩事实!

开发人员很容易盲目使用工具而不知道它们在幕后是如何工作的。虽然这种抽象是为了更好,但了解事物如何工作有时可能是经验丰富的程序员和业余程序员之间的区别。

让我们深入了解一些很酷的事实!

1 – 短期状态

如果您已经使用 git 相当长一段时间,您应该了解 git status。但是,您是否知道有一个选项可以获取更具可读性和最小化的状态输出?

通过使用短状态标志 -s,您可以获得更紧凑的格式。

$ git status -s m readmemm rakefilea  lib/git.rbm  lib/simplegit.rb?? license.txt

登录后复制

您会注意到输出的左侧部分有 2 列。左列代表暂存区的状态,右列代表工作树的状态。动作顺序也按时间顺序从左到右表示。

让我们解释一下上面的输出:

“m” – 修改但未上演“mm” – 上演然后再次修改。因此,下一次提交需要一个额外的阶段。“a” – 创建并暂存一个新文件“m” – 上演“??” – 创建了一个新文件,但未暂存(未跟踪)

2 – 跳过暂存区

如果您想暂存跟踪的 文件并在一个命令中提交所有内容,该怎么办?

您可以使用git commit -a -m “message”

请注意,不幸的是,未跟踪的文件(新创建的文件)将不会使用这个神奇的命令进行暂存。

3 – 查看您的提交历史记录

使用 git log 按时间倒序列出存储库中所做的提交(最近的提交首先显示)。

有多种选项可让您自定义输出。让我们回顾一些有用的:

-{number} 限制显示的日志条目数(例如,git log -2 显示最后两个条目)–stat 显示缩写统计信息,例如每次提交的文件数或插入/删除数–pretty=oneline 将每个提交打印在一行上–graph 添加一个 ascii 图表,显示您的分支和合并历史记录

4 – 使用 git restore 撤消操作

当您想要取消暂存文件时,请使用git reset head 。当您想要取消修改已修改的文件时,请使用 git checkout — {file}

现在有一种更简单的方法可以做到这两点! git 版本 2.23.0 引入了 git restore,它带来了取消暂存和取消修改文件的二合一功能。

git restore {file} – 取消修改已修改的文件git restore –staged {file} – 取消暂存文件

5 – git fetch 与 git pull

作为程序员,您很可能至少使用过 git pull 一次。此外,您很可能听说过 git fetch 但从未真正需要使用它。好吧,我们来谈谈它实际上做了什么以及它与 git pull 有何不同。

您可以将 fetch 视为 pull 中发生的事情的第一步。

在拉取中,我们从远程存储库下载所有数据并将其传输到本地存储库。这就是 fetch 的作用。

此时,您的本地存储库已拥有数据,但尚未将其与工作目录合并,以便您可以处理最新的更改。拉取的下一步是与您的分支合并,以便最新的更改位于您的工作目录中。

因此,pull 一次获取并合并所有内容,而 fetch 只执行第一步。

6 – git 别名

如果我告诉你有一种方法可以让你的 git 命令可定制怎么办?通过git config,你就可以!

您可以为常用命令设置别名,如下所示:

$ git config --global alias.co checkout$ git config --global alias.br branch$ git config --global alias.ci commit$ git config --global alias.st status

登录后复制

现在,您无需输入 git commit,只需输入 git ci.

这对于帮助使特定任务更加直观的命令特别有用。

$ git config --global alias.unstage 'reset head --'# the double dash serves as an option separator. # it tells git to treat anything after it as a filename

登录后复制

上面的命令使以下命令等效:

git unstage fileagit 重置 head — filea

添加 last 命令来查看最近的提交也是很常见的:

$ git config --global alias.last 'log -1 HEAD'

登录后复制

这就是本博客的全部内容了!我希望您在下一个使用 git 的项目中学到了一些巧妙的技巧,这将提高您的工作流程的质量。感谢您的阅读!

以上就是你真的了解Git吗?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2668119.html

(0)
上一篇 2025年3月7日 12:27:38
下一篇 2025年3月7日 12:27:43

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • TypeScript 中的 TSyringe 和依赖注入

    我不太喜欢像 nestjs 这样的大型框架;我一直喜欢以我想要的方式构建我的软件的自由,以及我以轻量级方式决定的结构。但在测试 nestjs 时我喜欢的是依赖注入。 依赖注入(di)是一种设计模式,它允许我们通过消除创建和管理类依赖关系的责…

    2025年3月7日
    200
  • 增强您的 Web 动画:像专业人士一样优化 requestAnimationFrame

    流畅且高性能的动画在现代 web 应用程序中至关重要。然而,管理不当可能会使浏览器的主线程过载,导致性能不佳和动画卡顿。 requestanimationframe (raf) 是一种浏览器 api,旨在将动画与显示器的刷新率同步,确保与 …

    2025年3月7日
    200
  • 从 shell 脚本迁移到“Bun 脚本”

    在 zcloud 从事专注于流程自动化和基础设施的项目时,我们经常遇到需要创建多个函数来执行验证和通用流程的情况。仅使用一种操作系统时一切正常,但当涉及多个系统时情况就会变得复杂。 在我们的例子中,大部分开发都在 linux 上进行,但我们…

    2025年3月7日
    200
  • 在 Nextjs 项目中通过裁剪和压缩优化图像上传

    作为一名前端开发人员,您很有可能曾经或正在从事涉及发布和显示图像的项目。如果你还没有,那么你很快就会的。因此,最近,当我们完成项目后,我们发现在显示用户提供的图像时遇到了麻烦。 这一切是如何解开的最大的问题是如何处理尺寸,尤其是图像的高度与…

    2025年3月7日
    200
  • Git 中合并的良好实践

    安全合并策略: 我正在学习如何在 git 中进行合并,有 2 个好的实践可以帮助您(如果您也是像我一样的新开发人员)最大程度地减少搞乱 git 历史记录的可能性。 从主分支测试合并:当您在主分支上工作并想要合并功能分支,但又想避免破坏主分支…

    2025年3月7日
    200
  • 即将推出大事

    我决定从头开始构建全栈 Web 开发人员课程,从 HID 一直到服务器和可扩展性。所有需要知道的,都将免费!以下是涵盖的内容: 互联网 互联网是如何运作的?什么是 HTTP?浏览器及其工作原理?DNS 及其工作原理?什么是域名?什么是托管?…

    2025年3月7日
    200
  • 又一周又一个特色

    本周我实现了对 @add00_3 制作的 DocBot 的 TOML 支持。第一次听说 TOML,有点惊讶它的存在(我们已经有了 YAML)。实现非常简单,因为代码是用 JavaScript 编写的,并且代码非常易于阅读。尽管我确实花了一分…

    2025年3月7日
    200
  • 如何使用 Git LFS 将大文件推送到 git 存储库

    所以我最近正在做一个项目,我必须使用高分辨率资产,因此它们的尺寸很大。我无法将文件推送到我的存储库。每当我尝试时,我都会收到以下错误: 远程:错误:文件 file.csv 为 182.47 mb​​;这超出了 github 的文件大小限制 …

    2025年3月7日
    200
  • JavaScript (JS) 路线图:快速掌握

    JavaScript (JS) 路线图: 基本原理: 变量、数据类型和运算符。循环和条件等控制结构。功能和范围。 DOM 操作: 使用 JavaScript 访问和修改 HTML 和 CSS。事件处理。 异步编程: 立即学习“Java免费学…

    2025年3月7日
    200
  • 新功能公关

    我有机会为同学的项目做出贡献。他开发了一个聊天完成程序,提供两种服务。第一个服务是 groq,第二个是 google 的 gemini。 解释一下,两者有显着差异。 Google 仅提供 Gemini 及其型号。另一方面,GROQ提供多种型…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论