当前位置: 首页 > news >正文

git的奇特知识点

展示帮助信息

git help -gThe common Git guides are:attributes          Defining attributes per pathcli                 Git command-line interface and conventionscore-tutorial       A Git core tutorial for developerscvs-migration       Git for CVS usersdiffcore            Tweaking diff outputeveryday            A useful minimum set of commands for Everyday Gitglossary            A Git Glossaryhooks               Hooks used by Gitignore              Specifies intentionally untracked files to ignoremodules             Defining submodule propertiesnamespaces          Git namespacesrepository-layout    Git Repository Layoutrevisions           Specifying revisions and ranges for Gittutorial            A tutorial introduction to Gittutorial-2          A tutorial introduction to Git: part twoworkflows           An overview of recommended workflows with Git'git help -a' and 'git help -g' list available subcommands and some concept guides. See 'git help <command>' or 'git help <concept>' to read about a specific subcommand or concept.

回到远程仓库的状态

抛弃本地所有的修改,回到远程仓库的状态。

git fetch --all && git reset --hard origin/master

重设第一个 commit

也就是把所有的改动都重新放回工作区,并清空所有的 commit,这样就可以重新提交第一个 commit 了

git update-ref -d HEAD

查看冲突文件列表

展示工作区的冲突文件列表

git diff --name-only --diff-filter=U

展示工作区和暂存区的不同

输出工作区和暂存区的 different (不同)。

git diff

还可以展示本地仓库中任意两个 commit 之间的文件变动:

git diff <commit-id> <commit-id>

展示暂存区和最近版本的不同

输出暂存区和本地最近的版本 (commit) 的 different (不同)。

git diff --cached

展示暂存区、工作区和最近版本的不同

输出工作区、暂存区 和本地最近的版本 (commit) 的 different (不同)。

git diff HEAD

快速切换到上一个分支

git checkout -

删除已经合并到 master 的分支

git branch --merged master | grep -v '^\*\|  master' | xargs -n 1 git branch -d

清除无效分支

git fetch -p

展示本地分支关联远程仓库的情况

git branch -vv

重命名本地分支

git branch -m <new-branch-name>

回到某个 commit 的状态,并删除后面的 commit

和 revert 的区别:reset 命令会抹去某个 commit id 之后的所有 commit

git reset <commit-id>  #默认就是-mixed参数。git reset --mixed HEAD^  #回退至上个版本,它将重置HEAD到另外一个commit,并且重置暂存区以便和HEAD相匹配,但是也到此为止。工作区不会被更改。git reset --soft HEAD~3  #回退至三个版本之前,只回退了commit的信息,暂存区和工作区与回退之前保持一致。如果还要提交,直接commit即可  git reset --hard <commit-id>  #彻底回退到指定commit-id的状态,暂存区和工作区也会变为指定commit-id版本的内容

修改上一个 commit 的描述

如果暂存区有改动,同时也会将暂存区的改动提交到上一个 commit

git commit --amend

切换到新的分支不带历史记录

git checkout --orphan new_branch

统计每个人增删行数

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

查看仓库提交者排名前 5

git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5

贡献值统计

git log --pretty='%aN' | sort -u | wc -l

提交数统计

git log --oneline | wc -l

添加或修改的代码行数

git log --stat|perl -ne 'END { print $c } $c += $1 if /(\d+) insertions/'

查看某段代码是谁写的

git blame <file-name>

查看两个星期内的改动

git whatchanged --since='2 weeks ago'

把 A 分支的某一个 commit,放到 B 分支上

git checkout <branch-name> && git cherry-pick <commit-id>

添加子模块

git submodule add <url> <path>

首次克隆仓库与子模块

git clone --recursive <url>

更新子模块

git submodule update
http://www.lryc.cn/news/297548.html

相关文章:

  • 按键扫描16Hz-单片机通用模板
  • 在容器镜像中为了安全为什么要删除 setuid 和 setgid?
  • Flink 动态表 (Dynamic Table) 解读
  • 【原创 附源码】Flutter海外登录--Google登录最详细流程
  • 第70讲axios后端请求工具类封装
  • 【数学建模】【2024年】【第40届】【MCM/ICM】【F题 减少非法野生动物贸易】【解题思路】
  • 第3节、电机定速转动【51单片机+L298N步进电机系列教程】
  • 【51单片机】LCD1602(可视化液晶屏)调试工具的使用
  • Netty应用(四) 之 Reactor模型 零拷贝
  • Huggingface上传模型
  • kyuubi 接入starrocks | doris
  • notepad++成功安装后默认显示英文怎么设置中文界面?
  • HiveSQL——连续增长问题
  • 使用cocos2d-console初始化一个项目
  • VitePress-13- 配置-title的作用详解
  • Rust-AI todo list 开发体验
  • 2024-02-07(Sqoop,Flume)
  • LDAR管理系统解决方案
  • [vscode]ssh报错: Resolver error: Error: XHR failedscode错误
  • 【Maven】依赖、构建管理 继承与聚合 快速学习(3.6.3 )
  • Flume安装部署
  • 点云从入门到精通技术详解100篇-非结构化道路下无人平台路径规划与运动控制
  • 生成树技术华为ICT网络赛道
  • [HTTP协议]应用层的HTTP 协议介绍
  • Linux 命令基础
  • 【开源】JAVA+Vue+SpringBoot实现实验室耗材管理系统
  • 集成开发环境 IntelliJ IDEA的基本使用
  • 【Flink入门修炼】1-2 Mac 搭建 Flink 源码阅读环境
  • Spring IoC容器详解
  • 06 MP之自动填充+SQL执行的语句和速度分析