一些不太常用的 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
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
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
欲了解更多信息,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'.
在两个分支之间来回切换
git switch这使得在同一分支之间连续切换变得非常容易。甚至不需要分支名称即可切换,只需删除分支名称并添加一个连字符(-):
$ git switch -
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
再次使用相同的命令将切换回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;
}
}
恢复到文件的旧版本
git restore 命令还有一个非常有用的选项:`--source`。使用此选项,您可以快速恢复特定文件的任何早期版本:
git restore --source 6bcf266b index.html
为你的提交添加注释
为了更好地保存开发历史记录,开发者通常会编写清晰易懂的提交说明。由于提交规范的普及,一些开发团队甚至可以自动生成包含提交信息的发布说明。如何在提交中添加一些额外的注释呢?提交信息中的添加内容会反映在远程 Git 托管的图形用户界面 (GUI) 上。如何为 CI/CD 服务器记录消息,或者添加一些隐藏的注释来记录技术工作?我们可以借助 Git 内置的注释功能为提交添加额外的注释。
要将注释关联到当前提交,请发出以下命令:
$ git notes add -m "This is a test comment"
省略 `-m` 选项,即可使用编辑器程序编写多行长篇注释。`git notes show` 命令可以查看最新注释。此外,`git log` 命令默认显示注释。GitHub
之前支持将 Git 注释作为评论,但现在已弃用,转而支持基于 Web 的评论。
Git 不会自动推送或拉取笔记,但您可以使用以下命令显式管理远程笔记:
git push <remote> refs/notes/*
git fetch origin refs/notes/*:refs/notes/*
打印 SHA1 哈希值
git rev-parse是一个辅助性的管道命令,主要用于数据操作。
它的一个常见用途git rev-parse是打印给定修订说明符的 SHA1 哈希值。此外,它还提供各种选项来格式化此输出,例如 `--short` 用于打印较短的唯一 SHA1 值。
$ git rev-parse HEAD
64f95a3edf8ecaf1f874b9a25fb7312a722f463a
结论
这些命令主要是为了提高效率和简化操作。了解它们的作用当然很好。Git 如今已广为人知,但它的许多强大功能仍不为大众所知。的确,你只需掌握 commit、push 和 pull 这几个命令就能“应付”大部分工作。
感谢阅读😊。
文章来源:https://dev.to/akashrchandran/some-less-popular-git-commands-2oem