背景: Git 是非常优秀的团队协作管理工具。经常会使用一些命令,列举如下
-
第一次下载代码
git clone XXX.git
-
切换到master
git checktout master
-
拉取最新的代码
git pull
-
创建分支
git checkout -b nameXXX
-
提交到远端
git push origin nameXXX
-
有些时候,经常在本地更改,此文件并不能ignore,又担心会误提交,可以使用如下命令忽略此文件
git update-index --assume-unchanged app/Providers/AppServiceProvider.php
-
过滤出当前分支,自某个时间开始,某个作者修改过的不同文件
git whatchanged --since="2019-03-25" --author="emma" --no-commit-id --name-only | sort | uniq
-
查看最新的4条日志
git log -4
-
查询代码提交行数、修改行数,往往日提交量在150左右,可用于评估工作量,在两个版本之间提交之间
git log --numstat --pretty="%H" --author="Your Name" commit1..commit2 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
示例:
git log --numstat --pretty="%H" --author="emma" 188fc8261dc0281d5c917a308e4b2498e12c2016..f83769a0e51aabd3b8bdcbc5b0fc7d3af56e2374 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
-
排除文件权限变更提交【mac,linux操作系统对于文件权限校验严格,如果没有执行权限是不能执行的,当前代码中就有phpunit在本地开发环境中需要执行,但不能提交到git库中,那么就需要使用git的功能忽略文件权限的变更】
git config core.filemode false
git config --global core.filemode false
- 比较两个分支不同的文件命令
git diff master branch --stat
,
如:git diff master hotfix/v201909_01_pedding_data --stat
如排除目录 vendor 使用命令
git diff master hotfix/v201911_02_grant_cancel --stat ':(exclude)vendor/*' > /tmp/diff.log
排除前端
git diff master hotfix/v201912_01_grant_effect_refactor --stat ':(exclude)vweb/*' ':(exclude)*.js' ':(exclude)*.html'
网友评论