提高 Git 工作效率的 7 个技巧
介绍
Git 是最受欢迎的源代码控制系统,其开发者采用率高达 93.87%(根据StackOverflow 2022 年调查)。它是一个非常强大的系统,拥有许多大多数开发人员所不知道的隐藏功能。
在这篇文章中,我将展示一些可以让您在使用 Git 时的工作更轻松的功能。
1 - 在获取时删除远程删除的分支
摘自Git 文档:
Git 具有保留数据的默认设置,除非它被明确丢弃;这延伸到保留对远程分支的本地引用,而这些远程分支本身已经删除了这些分支。
如果任其积累,这些过时的引用可能会使具有大量分支变动的大型繁忙存储库的性能变差,并且例如使 git branch -a --contains 等命令的输出不必要地冗长,并且影响与已知引用的完整集合一起工作的任何其他内容。
要在获取所有分支时删除没有远程跟踪引用的本地分支,--all
请使用参数而不是--prune
参数:
git fetch --prune
2 - 合并/重新定基而不检出目标分支
当进行合并或重新定基时,通常会看到人们执行以下操作:
git checkout branch-to-merge-from
git pull
git checkout my-working-branch
git merge branch-to-merge-from
Git 分支只是对某个提交的引用。当我们执行 fetch 操作时,远程分支会在本地创建,并带有origin/
前缀,因此合并之前无需先 checkout branch-to-merge-from
。
ℹ️ 远程分支前缀取决于远程名称,但默认为
origin
。
无需签出并拉入本地分支即可完成以下工作branch-to-merge-from
:
git fetch --prune
git merge origin/branch-to-merge-from
3 - 使用空白提交触发 CI/CD 管道
如果您正在使用 CI/CD 流水线(您应该这样做),有时您需要在不更改代码的情况下触发流水线。我们可以创建一个空的提交,这样就不必更改文件并在末尾添加空行,从而创建不必要的日志:
git commit --allow-empty -m 'Empty commit'
git push
4 - 查看另一个分支中的文件
在开发某个功能时,我们经常需要检查另一个分支(例如生产分支(主分支))中的文件。一些 Git 服务提供了 Web 界面,方便您查找特定分支中的文件。但是,如果您没有此选项,Git 可以在命令行中显示该文件,而无需切换分支,只需使用show
命令后跟分支名称和文件路径即可。
git show main:src/Program.cs
与其他 Git 命令一样,我们可以传递任何提交或引用,而不是分支名称:
# Show the program.cs file in the previous commit
git show HEAD~1:src/Program.cs
5 - 检出之前使用的分支
要切换回先前签出的分支,只需传递-
分支参数:
git checkout develop
git checkout main
git checkout - #Checkout the develop branch
6 - 在 Git 中搜索
如果您想在存储库中搜索字符串,请使用该git grep
命令。
要在所有提交中查找字符串,请git grep
使用git rev-list --all
以下命令提供提交列表:
# Search for the word "git" in all files of all commits
git rev-list --all | xargs git grep "git"
7 - 以图表形式显示提交日志
Git 可以在命令行中以图表的形式显示提交日志。为此,请使用命令--graph
的参数git log
。
ℹ️ 传递
--oneline
参数以在一行中显示提交哈希和提交消息,并使图表更易于阅读。
git log --graph --oneline
Git 还可以显示特定文件的提交历史记录:
git log --graph --oneline systemcontext.md
额外内容 - Git 别名
为了更轻松地使用这些命令,我们可以创建 Git 别名。在本文中,我将解释 Git 别名,并展示一些我日常使用的别名。
喜欢这篇文章吗?
我在我的个人博客上发布了一些额外内容。点击此处查看。