发布于 2026-01-06 0 阅读
0

一些不太常用的 Git 命令

一些不太常用的 Git 命令

介绍

如今,几乎所有开发者都在使用 Git。就我个人而言,即使使用了大约两年,我仍然不断发现 Git 的新功能。以下是我发现的一些命令,它们似乎并不常用。事不宜迟,让我们深入了解一下。

以更简便的方式查看日志

git logGit 日志是一个实用工具,可以回顾和阅读仓库中所有操作的历史记录。Git 日志的多种设置可用于缩小历史记录的范围。Git 日志通常包含提交列表。但有时列表非常长,很难找到我们需要的内容。让我向您展示一种更简单的方法,输出结果简洁明了。

git log --oneline

查看最新提交记录非常有用。使用该--oneline标志后,每个提交记录都会被简化为一行。默认情况下,它只显示提交 ID 和提交消息的第一行。输出应该如下所示:

1266f06 (origin/develop) updated readme
33bf5fb Merge branch 'develop'
bd99bba fixed error
19389a7 Merge pull request #5 from akashrchandran/develop
5a2258e added exceptions
9dbb9de updated readme
Enter fullscreen mode Exit fullscreen mode

git 短日志

一个名为 `git log` 的修改版 git log 命令git shortlog主要用于发布通知。它会显示每个提交信息的第一行,并根据作者对每个提交进行分组。这样可以轻松确定谁负责了哪些工作。

Akash R Chandran (4):
      Initial commit
      fixed all errors
      added gitignore
      Added support for heroku deployment

Paulo Martini(3):
      added files via upload
      updated
      fixed requests errors
Enter fullscreen mode Exit fullscreen mode

git log --graph

使用该选项时,提交历史的分支结构会以 ASCII 图形的形式呈现--graph。为了更方便地确定哪个提交属于哪个分支,该选项通常与 ` --onelineand`--decorate命令结合使用:

*   64f95a3 (HEAD -> main, origin/main, origin/HEAD) Merge pull request #6 from akashrchandran/develop
|\
| * 1266f06 (origin/develop) updated readme
* | 33bf5fb Merge branch 'develop'
|\|
| * bd99bba fixed error
* | 19389a7 Merge pull request #5 from akashrchandran/develop
|\|
| * 5a2258e added exceptions
|/
* 9dbb9de updated readme
Enter fullscreen mode Exit fullscreen mode

欲了解更多信息,git log请访问此处

切换分支

git checkout命令用途广泛。因此,Git 社区决定发布一个新命令:`git branch` git switch。顾名思义,它主要用于切换分支。

$ git switch develop
Switched to a new branch 'develop'
branch 'develop' set up to track 'origin/develop'.
Enter fullscreen mode Exit fullscreen mode

在两个分支之间来回切换

git switch这使得在同一分支之间连续切换变得非常容易。甚至不需要分支名称即可切换,只需删除分支名称并添加一个连字符(-)

$ git switch -
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
Enter fullscreen mode Exit fullscreen mode

再次使用相同的命令将切换回develop

检查文件更改

diff 函数用于输出两个输入数据集之间的差异。当git diff调用 Git 命令时,会对 Git 数据源执行 diff 操作。提交、分支、文件和其他类型的数据源都是示例。本文档将介绍典型的git diff命令和 diff 工作流程模式。`diff` git diff、` git statusdiff` 和 ` git logdiff` 经常用于检查 Git 仓库的当前状态。

$ git diff 
diff --git a/spotify.php b/spotify.php
index 6987fef..bc766cf 100644
--- a/spotify.php
+++ b/spotify.php
@@ -64,6 +64,7 @@ class Spotify
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
                curl_setopt($ch, CURLOPT_URL, $formated_url);
                $result = curl_exec($ch);
+               echo $result;
                return $result;
        }
 }
Enter fullscreen mode Exit fullscreen mode

恢复到文件的旧版本

git restore 命令还有一个非常有用的选项:`--source`。使用此选项,您可以快速恢复特定文件的任何早期版本:

git restore --source 6bcf266b index.html
Enter fullscreen mode Exit fullscreen mode

为你的提交添加注释

为了更好地保存开发历史记录,开发者通常会编写清晰易懂的提交说明。由于提交规范的普及,一些开发团队甚至可以自动生成包含提交信息的发布说明。如何在提交中添加一些额外的注释呢?提交信息中的添加内容会反映在远程 Git 托管的图形用户界面 (GUI) 上。如何为 CI/CD 服务器记录消息,或者添加一些隐藏的注释来记录技术工作?我们可以借助 Git 内置的注释功能为提交添加额外的注释。

要将注释关联到当前提交,请发出以下命令:

$ git notes add -m "This is a test comment"
Enter fullscreen mode Exit fullscreen mode

省略 `-m` 选项,即可使用编辑器程序编写多行长篇注释。`git notes show` 命令可以查看最新注释。此外,`git log` 命令默认显示注释。GitHub
之前支持将 Git 注释作为评论,但现在已弃用,转而支持基于 Web 的评论。

Git 不会自动推送或拉取笔记,但您可以使用以下命令显式管理远程笔记:

git push <remote> refs/notes/*
git fetch origin refs/notes/*:refs/notes/*
Enter fullscreen mode Exit fullscreen mode

打印 SHA1 哈希值

git rev-parse是一个辅助性的管道命令,主要用于数据操作。
它的一个常见用途git rev-parse是打印给定修订说明符的 SHA1 哈希值。此外,它还提供各种选项来格式化此输出,例如 `--short` 用于打印较短的唯一 SHA1 值。

$ git rev-parse HEAD
64f95a3edf8ecaf1f874b9a25fb7312a722f463a
Enter fullscreen mode Exit fullscreen mode

结论

这些命令主要是为了提高效率和简化操作。了解它们的作用当然很好。Git 如今已广为人知,但它的许多强大功能仍不为大众所知。的确,你只需掌握 commit、push 和 pull 这几个命令就能“应付”大部分工作。

感谢阅读😊。

文章来源:https://dev.to/akashrchandran/some-less-popular-git-commands-2oem