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"
网友评论