摘要 分享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 日志来统计代码量这个功能呢?
一个是统计工作量,贡献量的时候 —— 这一看就是要发奖金!另一个是统计自己代码量的时候 —— 十有八九是准备跳槽了。
哈哈,言归正传。先介绍在哪统计。
- 打开Git Bash;
- 切换到你工程所在的目录;
- 执行满足如下需求的命令即可。
指定用户名和起止日期
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\n", 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";}'
Git 常用命令和统计代码量的更多相关文章
-
git 常用命令,上传,下载,更新线上代码
git 常用命令以及推荐git新建上传个人博客 $ git clone //本地如果无远程代码,先做这步,不然就忽略 $ git status //查看本地自己修改了多少文件 $ git add . ...
-
git 统计代码量 shell脚本
#!/bin/bash # 统计代码量 # 使用方法: sh gitstat.sh "2017-11-01" "2017-11-30" "JamKon ...
-
Git常用命令及软件推荐
查看.添加.提交.删除.找回,重置修改文件 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id gi ...
-
转收藏:Git常用命令速查表
一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...
-
- Git常用命令 基础 总结 MD
目录 目录 Git常用命令 帮助 help 常用操作 初始化 clone init 提交 push 暂存 更新 撤销修改 分支 branch 查看分支 创建分支 切换分支 checkout 删除分支 ...
-
Git 常用命令详解
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...
-
Git 常用命令大全
Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v 添加 ...
-
Git常用命令总结
Git常用命令总结 git init 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹. git clone ...
-
GIT常用命令备忘
Git配置 git config --global user.name "storm" git config --global user.email "stormzhan ...
随机推荐
-
【荐】怎么用PHP发送HTTP请求(POST请求、GET请求)?
file_get_contents版本: <?php /** * 发送post请求 * @param string $url 请求地址 * @param array $post_data pos ...
-
StringGrid 实例5 本例功能:字体修改为居中,红色,20号
实例5 本例功能: 在FireMonkey中StringGrid对于字体的调整由于没有font属性和onDrawCell事件使得变得有些麻烦,后来费了一些功夫才找到方法.但由于XE3中某些属性还是没有 ...
-
EasyUI 我的第一个窗口
建立窗口时很简单的,我们建立DIV标记: <div id="win" class="easyui-window" title="My Windo ...
-
enode框架
enode框架 2.0 step by step之整体架构介绍 前言 enode框架简介 enode架构图 command handler一次只处理一个command 让domain生活在in mem ...
-
(一)Maven简介
Maven这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内行”,是一个跨平台的项目管理工具.Maven主要服务于基于Java平台的项目构建.依赖管理和项目信息管理. 构建(build)是每一 ...
-
mysql high availability 概述
一.什么是高可用性 1.可用性是指服务不间断运转的时间,通常用百分比来表示,例如 99.999%表示每年最多允许5分钟的宕机时间 2.可用性的效果和开销比例呈线性增长 3.可用性的意义往往也不尽相同, ...
-
cocos2dx 3.3 场景切出时RenderTexture crash
在cocos2dx 3.3中下面myScene在切出时会存在概率性崩溃(代码作了最大程度简化,仅为说明问题): class CmyLayer:public Layer{ public: CmyLaye ...
-
Python内置函数:read()
文章转载于:http://blog.csdn.net/sxingming/article/details/51337768(博主:快递小哥) 1> >>> f=open(r&q ...
-
mysql数据库去除重复数据
(一)最原始的方法: delete from test where id not in (select * from ((select min(id) from test group by(name) ...
-
[TJOI2017] 不勤劳的图书管理员
题目描述 加里敦大学有个帝国图书馆,小豆是图书馆阅览室的一个书籍管理员.他的任务是把书排成有序的,所以无序的书让他产生厌烦,两本乱序的书会让小豆产生这两本书页数的和的厌烦度.现在有n本被打乱顺序的书, ...