zoukankan      html  css  js  c++  java
  • Git 常用命令和统计代码量

    摘要 分享Git日常操作中常用的命令,分享如何统计在项目中贡献的代码量。

    下面列出Git bash常用命令。

    1. git clone **(项目地址)

    克隆一个git项目到本地,将git项目拉取到本地

    2. git status

    查看文件状态,列出当前目录没有被git管理,以及被修改过还未提交的文件

    3. git add *

    将我们提交的文件添加到索引库中(添加到缓冲区),*可以是路径也可以是.符号,git add . 代表将当前目录下的所有文件都添加到索引库中,如果指定路径则代表将制定路径的文件添加到索引库中。

    4. git commit -m "备注"

    将文件推送到本地仓库中,-m 后可以填写此次提交的备注如git commit -m "提交删除功能代码",那么在git项目中的提交记录里面就能看见你的推送备注。这一步仅仅是放在缓冲区中,还未真正提交代码

    5. git push origin 分支名

    这一步才是推送代码推送时需要跟分支名,表示需要将代码推送至某个分支.如git push origin dev表示你要讲代码推送至dev分支。

    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

     

    接下来分享一下统计代码量的Git命令。为啥会提到分析 Git 日志来统计代码量这个功能呢?

    一个是统计工作量,贡献量的时候 —— 这一看就是要发奖金!另一个是统计自己代码量的时候 —— 十有八九是准备跳槽了。

    哈哈,言归正传。先介绍在哪统计。

    1. 打开Git Bash;
    2. 切换到你工程所在的目录;
    3. 执行满足如下需求的命令即可。

    指定用户名和起止日期

    git log --since="2018-03-01" --before="2019-01-09" --author="username" --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 }'

    added lines: 15909 removed lines : 6359 total lines: 9550

    直接复制粘贴即可,username换成你的用户名,【since="2018-03-01" --before="2019-01-04"】中的日期换成你想要的日期。执行后会输出在当前项目内,指定用户名的用户的代码量统计信息,示例如下:

    统计所有用户的行数信息

    它扫描了当前分支的每个文件,然后输出每个人的代码增删行数信息。

    git log --shortstat --pretty="%cE" | sed 's/(.*)@.*/1/' | grep -v "^$" | awk 'BEGIN { line=""; } !/^ / { if (line=="" || !match(line, $0)) {line = $0 "," line }} /^ / { print line " # " $0; line=""}' | sort | sed -E 's/# //;s/ files? changed,//;s/([0-9]+) ([0-9]+ deletion)/1 0 insertions(+), 2/;s/(+)$/(+), 0 deletions(-)/;s/insertions?(+), //;s/ deletions?(-)//' | awk 'BEGIN {name=""; files=0; insertions=0; deletions=0;} {if ($1 != name && name != "") { print name ": " files " files changed, " insertions " insertions(+), " deletions " deletions(-), " insertions-deletions " net"; files=0; insertions=0; deletions=0; name=$1; } name=$1; files+=$2; insertions+=$3; deletions+=$4} END {print name ": " files " files changed, " insertions " insertions(+), " deletions " deletions(-), " insertions-deletions " net";}'
  • 相关阅读:
    python自定义ORM并操作数据库
    python 元类理解
    Python中type()详解:动态创建类
    Centos7安装教程
    数据库建模:学生信息系统搭建实验
    数据库索引、视图与触发器
    用python批量插入数据到数据库中
    制作一个简单的部门员工知识分享的python抽取脚本
    【Mybatis】XML配置实现增删改查
    NIO,AIO,BIO
  • 原文地址:https://www.cnblogs.com/east7/p/10237269.html
Copyright © 2011-2022 走看看