Git是一个免费的开源分布式版本控制系统,旨在以快速和高效的方式处理从小型到超大型项目的所有内容。
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

安装git

打开Git官网https://git-scm.com/downloads
选择你所使用的操作系统,下载安装即可。

git简单配置

#查看用户名
git config user.name
#查看邮箱
git config user.email

#设置用户名
git config --global user.name "your name"
#设置邮箱
git config --global user.email "your email"

git基础操作

#从远程获取最新
git pull origin <branch>

#推送到远程分支
git push origin <branch>

#查看已有分支,带有remote/前缀的都是远程分支
git branch -a

#创建分支
git checkout <branch>

#删除本地分支
git branch -d <branch>

#创建远程分支并推送
git push -u <branch>

#删除远程分支
git push origin --delete <branch-name>

#切换分支
git switch <branch>

#撤销对文件的改动
git checkout -- <file>

#将指定文件/全部文件 添加到暂存区,用于commit提交,也可以使用`.`来代表所有文件
git add <file>

#移出暂存区 如不指定文件将会移出所有文件
git reset HEAD <file>

#合并分支 -m 可省略 --no-ff 表示不使用快进合并(no fast-forward merge),使用该命令会在合并时新建一个commit记录
git merge --no-ff -m <commit>

git stash

# 将被跟踪的文件存入临时隐藏区,如果有新文件未跟踪,可以使用git add来创建跟踪
git stash

#同上,可选的描述性消息,可以帮助你记住 stash 的用途或内容
git stash save ""

#将隐藏区的文件移出
git stash apply

#将隐藏区的文件移出,并删除stash记录
git stash pop

git reset

#回退到上个版本
git reset --hard HEAD^

#回退到上<num>个版本
git reset --hard HEAD~<num>

#回退到指定版本
git reset --hard <commitId>

#修改commit注释
git commit --amend

#撤销一次commit操作,不撤销add,保留修改的文件
git reset --soft HEAD^

#撤销第<num>次commit操作,不撤销add,保留修改的文件
git reset --soft HEAD~<num>

#撤销1次commit操作且撤销add,保留修改的文件
git reset --mixed HEAD^
git reset HEAD^

#撤销第<num>次commit操作且撤销add,保留修改的文件
git reset --mixed HEAD~<num>
git reset HEAD~<num>

git log

#查看提交历史记录,它会按照提交的时间顺序显示所有的提交
git log

#查看引用日志,它记录了 Git 仓库中的引用(如分支、标签等)的变动历史。引用日志会记录引用的创建、删除、移动等操作以及每个操作对应的提交
git reflog

#统计一段时间内代码行数 --author不是必需的
git log --author="willxup" --since='2020-01-01' --until='2023-12-31' --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %s\n",add,subs,loc }'

#统计全部代码行数 --author不是必需的
git log --author="willxup"  --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %s\n",add,subs,loc }'

git cache

#清除缓存
git rm -r --cache .

gitstats工具

GitStats 是git(分布式版本控制系统)存储库的统计生成器。它检查存储库并从其历史记录中生成一些有趣的统计数据。目前 HTML 是唯一的输出格式。

官网地址:https://gitstats.sourceforge.net/
github地址:https://github.com/hoxu/gitstats

gitstats可以生成整个git项目的统计,是一个非常实用的小工具。

项目依赖

  • python
  • gnuplot

Windows安装

  • 下载python2gitstats使用python启动安装后需要设置环境变量
    • python2安装工具可以帮助添加,在安装时可以选择(gitstats只适用于python2)
  • 下载gnuplotgitstats使用gnuplot生成图表,安装后需要设置环境变量
    • Windows环境下:高级系统设置->系统属性->环境变量->系统变量->Path -> 例如增加D:\gnuplot\bin
  • 下载gitstats,下载源码即可。解压源码后,将文件gitstats复制一份出来并改名为gitstats.py

其他方式安装

Mac/Linux使用软件管理工具进行安装,比较简单,参考官方文档即可,过程与windows安装类似。

使用方法

  • gitstats目录下打开命令行工具(推荐git bash)
  • 执行以下命令生成git项目统计结果
# python gitstats.py 项目目录 输出目录   
python gitstats.py /c/project-name /c/gitstats/project-name
  • 生成完毕后,进入输出目录,运行index.html即可。
文章作者: Willxup
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Willxup
Linux Git
喜欢就支持一下吧