git的实用技巧
这篇文章主要介绍了Git的一些实用技巧,包括高级用法的git log命令、查找特定时间段的提交记录、显示单行的commit信息、使用git show查看详细更改信息、限制commit数量、按作者过滤commit历史记录、搜索包含特定关键字的提交,以及如何使用外部工具比较Git的diff代码。
jsxgit log --graph --decorate --all --pretty=format:"%C(auto,green)%h%Creset - %C(auto,blue)%ad%Creset - %C(auto,red)%<(10)%d%Creset | %s [%C(auto,magenta)%an%Creset]" --date=format:'%Y/%m/%d %H:%M:%S'
下面是 git log
命令中各个参数的详细解释,以及它们的作用:
-graph
参数在日志信息中绘制了 Git 仓库的版本历史关系图。-decorate
参数为 Git 仓库的版本历史信息增加分支、标签的展示。-all
参数在查找日志时,检查所有分支(包括远程分支)。-pretty=format:"%C(auto,green)%h%Creset - %C(auto,blue)%ad%Creset - %C(auto,red)%<(10)%d%Creset | %s [%C(auto,magenta)%an%Creset]"
这个参数定制了日志的输出格式。它将输出显示为提交哈希、提交日期、分支信息、提交消息以及提交作者的信息。
%C(auto,green)
- 输出哈希值,带有自动颜色选择器。%Creset
- 重置颜色为默认值。%h
- 缩短后的提交哈希值。%C(auto,blue)
- 输出提交日期,带有自动颜色选择器。%ad
- 提交日期格式化。%C(auto,red)
- 输出提交分支信息,带有自动颜色选择器。%<(10)%d
- 将分支信息格式化为长度为 10 的左对齐字符串。%s
- 提交信息摘要。%C(auto,magenta)
- 输出提交作者的名字,带有自动颜色选择器。%an
- 提交作者的名字。-date=format:'%Y/%m/%d %H:%M:%S'
参数定义日期的格式为 %Y/%m/%d %H:%M:%S
。总体而言,此命令可以让您以一种可视化和易读的形式查看 Git 仓库中的提交历史和分支关系,并为它们附加详细的格式化日志和日期信息。
此命令将会显示类似以下格式的信息:
要查找今天提交的 commit 记录,可以使用 Git 的 git log
命令中的时间限制选项进行过滤。以下是使用 git log
命令过滤出今天提交的 commit 记录的步骤:
运行以下命令,将显示今天
所提交的 commit:
git log --graph --decorate --all --pretty=format:"%C(auto,green)%h%Creset - %C(auto,blue)%ad%Creset - %C(auto,red)%<(10)%d%Creset | %s [%C(auto,magenta)%an%Creset]" --date=format:'%Y/%m/%d %H:%M:%S' --since="today 00:00:00" --until="today 23:59:59"
此命令将会显示类似以下格式的信息:
其中,-date
选项用于指定日期格式,-since
选项用于指定时间的起点,-until
用于指定时间的结束点,此处设置为一天内提交的 commit。
执行该命令后,您将会看到在今天提交的 commit 记录。如果今天没有提交过任何 commit,将没有任何输出。
希望这个命令可以帮助您查找到今天提交的 commit 记录。
jsxgit log --oneline
jsxgit show <commit>
git show
命令中的 --pretty
选项用于指定要显示的输出格式。这对于 Git 版本库有许多好处,包括:
-pretty
选项将 Git 显示的输出格式化成更易读的文本,这样您就可以在终端上更清晰、更易于理解地查看信息。-pretty
选项可以帮助您快速找到所需的信息。下面是 --pretty
选项可用的不同参数:
short
:显示简短的提交信息(无需更改)medium
:显示相对短的提交信息full
:显示完整的提交信息(包括更改信息)fuller
:以非常详细的方式显示提交信息例如,使用 --pretty=short
选项,可以以更简洁的方式显示提交信息的摘要。示例命令如下:
jsxgit show --pretty=short <commit>
jsxgit log -n <number>
jsxgit log --since=<date1> --until=<date2>
jsxgit log --author=<author>
jsxgit log --grep=<pattern>
以下是使用 --grep=<pattern>
选项的示例:
jsxgit log --grep="fix"
上述命令将在所有提交的注释中搜索关键字 bug fix
,并输出所有包含该关键字的提交。
除了使用字符串作为模式外,如果要查找特定时间范围内的提交记录,请使用 --since
和 --until
选项结合使用,例如:,例如:
jsxgit log --grep="fix" --since="3 days ago"
上述命令将搜索最近 3 天内包含关键字 bug fix
的提交记录。
master
其他的全部删除jsxgit branch | grep -v "master" | xargs git branch -D
该命令可以批量删除本地所有分支,但不会提示确认,也会无条件地删除所有不需要的分支。但是,master
分支不会被删除。如果您想保留某些分支,请先使用git branch
命令找到要保留的分支,然后使用grep
命令进行筛选。请谨慎操作并备份要删除的分支。 💡
master
、test
和 dev
之外的所有分支,请使用以下命令:👇jsxgit branch | grep -Ev "master|test|dev" | xargs git branch -D
使用此命令可以批量删除 Git 本地仓库中的分支。首先,使用 git branch
命令列出所有分支,然后在正则表达式模式中使用 grep
命令过滤掉不需要删除的分支,例如 master
、test
和 dev
。接下来,将过滤后的分支名称作为参数传递给 xargs
命令。最后,xargs
命令将这些分支名称作为参数传递给 git branch -D
命令,以便一次性地删除所有过滤后的分支。 🔍
🛠️ 工具链接:BeyondCompare 和 SourceTree
👉 使用外部工具 BeyondCompare 比较 Git 的 diff 代码,可以方便地查看文件的更改情况。
👉 如果您使用 Mac 平台,可以通过以下步骤将 BeyondCompare 配置为 SourceTree 的外部差异工具:
✅ 打开 BeyondCompare,打开主菜单,选中 安装命令行工具
🚀
✅ 在使用 BeyondCompare 外部差异工具之前,需要在命令行中建立连接。(这一步可做可不做) 🔌
在使用 "BeyondCompare" 外部差异工具之前,需要在命令行中建立连接。👇
jsxln /Applications/Beyond\ Compare.app/Contents/MacOS/bcomp /usr/local/bin/
✅ 打开 SourceTree,打开主菜单,选中 diff 选项卡,配置:
$LOCAL $REMOTE
$LOCAL $REMOTE $BASE $MERGED
😎 然后您就可以在 SourceTree 中愉快地查看 Git 的 diff 代码了!
✅打开sourcetree,选中origin/release/v1.1.8,右键选择与当前对比分支对比(dev-UnifiedFeeItemDataSource)
在右下方出现:
为了比较外部的差异,Sourcetree
会自动加载 Beyond Compare
并进行文件的比较:
左侧为当前分支 dev-UnifiedFeeItemDataSource
,右侧为对比分支 origin/release/v1.1.8
。
本文作者:LiuXueChao
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!