一、Git統計代碼量
1.根據用戶名時間段統計
git log --author="username" --since=2018-01-01 --until=2019-12-31 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
2.查看提交者排名前N位
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
3.提交數統計
git log --oneline | wc -l
4.根據用戶名統計
git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
5.根據時間段統計
git log --since=2020-01-01 --until=2021-02-04 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
6.統計每個人的增刪行數
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s ", add, subs, loc }' -; done
7.貢獻者統計
git log --pretty='%aN' | sort -u | wc -l
8.根據時間段排除文件夾統計
git log --since=2021-01-28 --until=2021-02-03 --pretty=tformat: --numstat -- . ":(exclude)src/test" | awk '{ add += $1; subs += $2; loc += $1 + $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
-- . ":(exclude)folderName" folderName指src/test文件夾,這里是相對路徑
-- . ":(exclude)folderName1" ":(exclude)folderName2" 排除多個文件夾
-- . ":(exclude)folderName"也 可以用在其他的統計中;--前只能有一個空格,有多個空格識別不了
9.根據指定文件夾統計
git log --since=2021-06-24 --until=2021-06-30 --pretty=tformat: --numstat | grep src/test | gawk '{ add += $1; subs += $2; loc += $1 + $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
src/test 指定src的test目錄下
注意:增刪也算統計的代碼量就修改loc += $1 + $2
二、Git常用命令
1. 克隆一個git項目到本地,將git項目拉取到本地
git clone 項目地址
2.查看文件狀態,列出當前目錄沒有被git管理,以及被修改過還未提交的文件
git status
3.將我們提交的文件添加到索引庫中(添加到緩沖區),*可以是路徑也可以是.符號,git add . 代表將當前目錄下的所有文件都添加到索引庫中,
如果指定路徑則代表將制定路徑的文件添加到索引庫中。
git add *
4.將文件推送到本地倉庫中,-m 后可以填寫此次提交的備注如git commit -m "提交刪除功能代碼",那么在git項目中的提交記錄里面就能看見你的推送備注。
這一步僅僅是放在緩沖區中,還未真正提交代碼
git commit -m "備注"
5.這一步才是推送代碼推送時需要跟分支名,表示需要將代碼推送至某個分支.如git push origin dev表示你要講代碼推送至dev分支
git push origin 分支名
6.更新當前分支的代碼,獲取最新的代碼
git pull
7.從當前分支切換至另一個分支
git checkout 分支名
8.當前分支合並其他分支
git merge 分支名
9.提交被忽略的文件
$ git add src/XXX
如果拋出如下異常
The following paths are ignored by one of your .gitignore files:src/XXX
Use -f if you really want to add them.
提示提交的時候,需要加 –f。使用如下命令即可解決:
$ git add -f src/XXX