一、代码回滚
下载代码:
1:分支克隆:git clone xxxx
分支:
2:查看所有分支:git branch -a
3:查看当前使用分支:git branch
4:分支切换:git checkout 分支名
代码回滚:
5: 代码回归目标提交ID:git reset --hard xxx
6: 代码强制推到目标分支:git push -f
7: 多分支场景代码强推:git push -f origin HEAD:canal-1.1.4
二、跨分支提交
1、单个commit合并
git cherry-pick commit_id
2、多个连续commit合并commit_id到commit_idn之间,包括两端
git cherry-pick commit_id..commit_idn
3、commit_id到commit_idn之间非闭包
git cherry-pick (commit_id..commit_idn]
4、挑选多个commit
git cherry-pick commit_id commit_idx commit_idy
二、Git文件差异比较
//比较所有文件的修改命令:
git diff
//比较目标文件命令:
git diff index.java
//git diff [本地库中文件历史记录(指针)] [文件名]命令
git diff HEAD test.txt 比较最新一次修改
git diff HEAD^ text.txt 比较上一次修改
git diff 46e8eaa test.txt 比较历史记录号为 46e8eaa的修改
三、查询代码提交记录
//整个文件命令
git blame index.java
//文件某行命令
git blame -L 5,9 index.java
四、Git统计项目总代码行数
git log --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 }' -
五、Git统计所有人提交代码行数
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\n", add, subs, loc }' -; done
六、Git统计某个人在某个时间段提交代码行数
git log --author="丁志超" --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --since ==2020-01-01 --until=2020-12-30 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
七、Git统计所有人在某个时间段提交代码行数
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t";git log --author="$name" --pretty=tformat: --since ==2020-01-01 --until=2020-12-30 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
八、Git统计某段时间代码行数
git log --since ==2020-04-10 --until=2020-08-10 | wc -l
九、Git贡献者统计
git log --pretty='%aN' | sort -u | wc -l
Git插件实现
python-gitlab