git命令归纳

git的命令非常多,能实现很多客户端上没有提供的功能,本文归纳日常工作中遇到的场景,并给出解决办法

统计某个文件的提交次数

git log -p cmd.php | grep -e 'commit [a-zA-Z0-9]*' | wc -l

统计某个文件两周内的提交次数

git log —since=2.weeks -p cmd.php | grep -e 'commit [a-zA-Z0-9]*' | wc -l

更新所有的submodule

git submodule foreach git pull origin master

建议每次拉服务器内容前都先弄到缓冲区,然后在本地修改冲突,再提交

git stash
git pull
git stash pop

修改了submodule的内容,push到submodule的仓库,并修改本仓库的submodule指针

cd submodule文件路径
git commit .
git push origin master
git add submodule文件路径
cd 项目根目录
git commit .
git push

当本地commit与服务器记录有冲突的时候,git拒绝做自动merge,可以用如下命令

git commit -i .

获取某一个branch的时间区间

#获得一个branch的所有提交tag,按时间倒序
git log master..$branch --oneline
#获得一个tag的提交时间
git show $tag --pretty=format:"%ci"

推荐阅读更多精彩内容