注:此博客不会介绍git的基本用法,只会介绍一些能大大改善你工作效率的(不知道算不算进阶)的小技巧
一键添加所有被修改文件到暂存区
场景:每次改完一堆文件还不算完,你还要把所有被修改的文件保存到git版本库,但是你觉得每次git add
一个文件到暂存区实在太慢,但直接git add .
又担心添加了其它无用的文件,那有没有一种方式可以一键添加刚才修改的文件到git的暂存区呢?
其实,只需要一点小小的修改,使用下面命令可以只add
已被track的文件:
git add . -u
一键删除未跟踪的临时文件
场景:强迫症的你看到git仓库下一堆密密麻麻的临时文件时,是不是有种想一口气把它们全部删掉的冲动呢?
git clean
命令就是干这事的!
谨慎的你在清理前还是有点犹豫,万一删错了怎么办?
别怕!你可以先运行如下命令,检查所有会被清理的文件清单:
git clean -n
然后,确认没有会被误删的文件后,正式开始清理:
git clean -f
快速统计个人贡献代码量
场景:如果你的老板喜欢用代码行数来量化每个人的工作量,如何快捷地统计你贡献的代码量呢?
使用下面的命令,并指定你的git账号和起止日期:
git log --author="<your git user name>" --after="2022-6-7" --before="2022-6-8" --pretty=tformat: --numstat \
| awk '{ add += $1; subs += $2; loc += $1-$2 } END{ printf "+ %s, - %s, total %s loc\n", add, subs, loc }'
如何利用好stash
场景1:分支A的代码改了一半,老板就火急火燎地让你赶快修复分支B的bug,那当前分支未改完的代码怎么办?
机智的你先git stash
把当前分支A的修改暂存,等修好分支B的bug了,再切换到分支A并git stash pop
恢复刚才未完成的修改
然而,屋漏偏逢连夜雨,分支B的BUG还没修好,分支C又出现了更大的问题需要立马修复,没办法,只能再git stash
了
场景2:现在,问题出现了,如果我stash
了多次,怎么选择恢复某次特定的修改呢?
实际上,git stash
并不是一个先进先出的stack
,它是可以指定操作某次修改的,例如:
# 查看编号为1的修改
git stash show -p stash@{1}
# 恢复编号为2的修改
git stash pop stash@{2}
其它小技巧加载中…