你应该知道的另外 10 个 Git 技巧

2025-05-25

你应该知道的另外 10 个 Git 技巧

封面图片:两个人拿着 Macbook Pro,作者:Christina Morillo
我最近写了一篇名为《10 个 Git 技巧,助您节省时间和保持理智》的文章。大家似乎很喜欢这篇文章,所以这里再分享几个 Git 技巧,它们在我的电脑上都保存为别名了。

1. 获取存储库中最早提交的日期

有时,当我想确切地了解一个开源项目有多旧,或者我试图弄清楚一个仓库是什么时候创建的时,我会让 git 告诉我第一次提交是什么时候。

git log --date-order --format=%cI | tail -1
Enter fullscreen mode Exit fullscreen mode

2. 查看每个人上个月的提交次数

这通常是我不需要的东西,但偶尔我会在一个项目上遇到困难,需要弄清楚应该向谁寻求帮助。

对我来说,最简单的方法是找出最近谁在仓库里工作。使用这个命令,你可以切换--since='1 month ago'到你认为最合理的时间范围。

git shortlog --summary --since='1 month ago'
Enter fullscreen mode Exit fullscreen mode

3. 将所有未跟踪的文件添加到 .gitignore

有时,当您设置一个新的 git 存储库时,将一堆东西转储到.gitignore文件夹中是有意义的,而输入所有内容可能会很繁琐。

我在网上找到的这个代码片段将把当前未被 git 跟踪的所有内容添加到 .gitignore 文件中。

git status 
| grep -P \"^\\t\" 
| grep -vF .gitignore 
| sed \"s/^\\t//\" >> .gitignore"
Enter fullscreen mode Exit fullscreen mode

4.显示所有忽略的文件

您可能想要做的下一件最明显的事情是列出那些被忽略的文件。

这正是下一个代码片段所做的:

git ls-files --others -i --exclude-standard
Enter fullscreen mode Exit fullscreen mode

5.列出所有未合并的分支

这段代码列出了所有尚未合并的分支。-a如果您不想包含远程仓库中的分支,可以移除该标志。

我在Solidus扩展上使用它来确保周围没有任何包含废弃工作的额外分支。

git checkout master && git branch -a --no-merged
Enter fullscreen mode Exit fullscreen mode

6. 列出特定文件的所有更改,即使该文件已被重命名

这是一个超级方便的技巧。使用此命令,您可以查看所有修改过文件的提交。

因为 git 很棒,它会向您显示该文件的更改,即使名称在其历史记录的某个时刻已经更改。

git log --follow -p -- <file_path>
Enter fullscreen mode Exit fullscreen mode

7.删除已经合并到master的本地分支

如果您发现您的机器上有很多不再需要的随机分支,您可以通过删除它们来保持良好的 git 卫生。

此代码片段将检查已合并到主分支的任何分支并自动为您删除它们。

如果您担心删除旧分支,请小心这一点。

git checkout master 
&& git branch --merged master 
| grep -v "master" 
| xargs -n 1 git branch -d
Enter fullscreen mode Exit fullscreen mode

8. 显示每个本地分支上次更改的时间

在项目的生命周期内,一些分支可能会被放弃。

以下代码片段可以快速找出本地是否有一个很长时间未更新的分支。

git for-each-ref --sort=committerdate refs/heads/ 
--format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - (%(color:green)%(committerdate:relative)%(color:reset))'
Enter fullscreen mode Exit fullscreen mode

9. 将文件夹拆分成新的 repo

如果您的项目足够复杂,您可以使用此命令从当前存储库中的目录中分离出一个新的存储库。

运行此命令后,您可能希望将更改推送到新存储库的远程位置。

git filter-branch --prune-empty --subdirectory-filter <folder_name> master
Enter fullscreen mode Exit fullscreen mode

10. 为你的最后一次提交添加共同作者

当多人参与提交时,GitHub 和 GitLab 支持将共同作者添加到您的提交中。

这样做应该将 GitHub 上的提交链接到多个作者。

OLD_MSG=$(git log --format=%B -n1) 
&& git commit --amend -m "$OLD_MSG" 
-m "Co-authored-by: jacobherrington <jacobherringtondeveloper@gmail.com>"
Enter fullscreen mode Exit fullscreen mode

就是这样!另外 10 个你应该知道的 Git 技巧 🤠

我很乐意在评论区听到更多巧妙的 git 技巧,或者关于我在这里分享的内容的替代方法!👇

文章来源:https://dev.to/jacobherrington/10-more-git-tricks-that-you-should-know-3bbp
PREV
常见 Git 问题的 4 个实用解决方案
NEXT
10 个 Git 技巧,助您节省时间和精力 以交互方式暂存文件的各个部分以进行提交 重新排列(或完全重写)分支的历史记录