常用 git 命令合集

配置信息

查看用户名和邮箱地址:

git config user.name
git config user.email

修改用户名和邮箱地址

git config --global user.name "xxxx"
git config --global user.email "xxxx"

生成密钥

ssh-keygen -t rsa -C "email"
按3个回车,密码为空。

基础操作

命令 说明
git diff 查看修改信息
git diff filePath 查看文件变动信息
git add . 添加所有修改
git checkout filename 撤销此文件的修改
git checkout . 撤销所有未提交的修改
git commit -m "提交信息" 提交代码
git commit 进入vim界面添加提交信息(比较详细)
git push 上传提交到服务器

log操作

命令 说明
git log 查看提交历史记录
git log --oneline 或者 git log --pretty=oneline 以精简模式显示
git log --stat 显示文件更改列表
git log --author= 'name' 显示某个作者的日志
git log -p filepath 查看某个文件的详细修改
git log -L start,end:filepath 查看某个文件某几行范围内的修改记录
git log --stat commitId 或者 git show --stat commitId 查看某一次提交的文件修改列表

tag相关命令

命令 说明
git tag 列出所有的tag
git tag name 打轻量标签 name
git tag -d name 删除本地的tag
git push origin --delete tag name 删除远程的tag
git show name 查看tag信息
git push origin name 将tag提交到远程

隐藏与恢复

命令 说明
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git stash clear 删除所有保存的信息

分支操作

命令 说明
git branch 查看本地分支
git branch -a 查看本地和远程分支
git branch -vv 列出本地分支和对应的远程分支及最新一条提交日志
git checkout -b branch_name 添加新分支
git checkout branch_name 切换本地分支
git branch -d branch_name 删除本地分支,如果有为合并代码则删除失败
git branch -D branch_name 强制删除本地分支
git push origin --delete branch_name 删除远程分支

仓库操作

命令 说明
git remote -v 远程仓库路径查询
git remote add origin(本地版本库) url(远程仓库地址) 添加远程仓库
git remote rm origin(远程仓库名) 删除远程仓库
git remote rename old_name new_name 修改仓库名
git remote add origin url(远程仓库地址)
git push -u origin master
上传到服务器

搜索

命令 说明
git log --grep="commit提交的关键字" 搜索相关信息列表

reset 命令

命令 说明
git reset HEAD^ 回退所有内容到上一个版本
git reset HEAD^ filename 回退 filename 文件的版本到上一个版本
git reset commitId 回退到指定版本
git reset --soft HEAD --soft 参数用于回退到某个版本
git reset --hard HEAD --hard 参数撤销工作区中所有未提交的修改内容,并删除之前的所有信息提交

补丁操作

命令 说明
git diff > 0001.patch 针对已修改的文件生成patch
git diff Test.java > test.patch 针对Test.java的修改信息生成patch
git format-patch HEAD^ 或 -1 生成最近的1次commit的patch
git format-patch commitId1...commitId2 生成两个commit间的修改的patch(生成的patch不包含commitId1)
git format-patch -1 commitId 生成单个commit的patch
git format-patch commitId 生成从commitId以来的修改patch(不包含该commitId)
git format-patch --root commitId 生成从根到commitId提交的所有patch
git apply --stat 0001-.patch 查看patch的情况
git apply --check 0001-.patch 检查patch是否能够打上,如果没有任何输出,则说明无冲突,可以打上
git apply xxx.patch 打补丁到项目中
git apply --reject xxx.patch 强制打补丁

统计

查看个人代码量
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 }' -

统计个人某个时间段提交的代码量
git log --author="name" --since=2022-01-01 --until=2022-02-01 --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 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 log --oneline | wc -l

提交者排名前3
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 3

GIT官方文档:点击这里

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351

推荐阅读更多精彩内容