百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

总结常用的git命令(git常用命令大全菜鸟)

wptr33 2025-07-07 23:37 16 浏览

这篇内容比较干,也是开发工作中最常用管理代码托管分支的工具,下面是我常用的到git命令

# 列出所有本地分支

$ git branch

# 列出所有远程分支

$ git branch -r

# 删除本地分支xxx

$ git branch -D xxx

#管理远程仓库的列表

$ git remote

# 切换分支xxx(切换远程分支,自动关联远程分支)

$ git checkout xxx

撤销暂存区中某个文件的修改

$ git checkout xxx.c

撤销暂存区中所有修改

$ git checkout .

# 新建并切换分支xxx

$ git checkout -b xxx

#从远程仓库拉取最新的提交,但不会自动合并到当前分支。

$ git fetch

#从远程仓库拉取最新的提交并合并当前分支

$ git pull

所以有人说git pull = git fetch + git merge。具体后面会单独出篇文章来说下

#生成最近的1次commit的patch

$ git format-patch HEAD^

# 将名字为
0001-limit-log-function.patch的patch打上

$ git am 0001-limit-log-function.patch   

在项目开发中,基本都会遇到这样的情况:本来你在自己的分支上愉快的开发功能A,但是突然加了一个优先级很高的需求B或者有bug需要先修复掉。但这个时候,你新做的功能A刚开发到一半,总不能先提交A再开发B,或者直接拉个新分支切过去吧?(可以倒是可以,但是不推荐),这个时候 我们就要用git stash

#临时保存分支修改的内容就像是,切换分支使用,git stash可以保存多次修改内容

$ git stash         

#恢复最近一次stash的修改的内容

$ git stash pop        

#恢复之前多次stash中的具体那次的保存修改内容


$ git stash apply    xxx  

#列出当前工作区stash的所有记录


$ git stash list        

#删除stash的所有记录

$ git stash clear   

#回退你已提交具体的commitID,并将commit的修改内容放回到暂存区

$ git reset --hard commitID

#清空工作目录下编译出来的中间产物

$ git clean -df

#重命名分支

$ git branch -m oldNme newName

#生成某个区间的patch

$ git format-patch   commitID..commitID  > lsdkall.patch

#生成最后第N次提交产生的补丁

$ git format-patch -N

#对比出修改了哪些内容

$ git diff

#生成某个区间的patch

$ git format-patch 97010ef958a502c60d7080212bba353af32d2057  f2f35bbfc16b384f447a30dd0b240637331fd132 > lsdkall.patch

#生成最后第N次提交产生的补丁

$ git format-patch -N

#回退之前的某个具体版本xxxx

$ git reset --hard xxxx

#显示一个提交的详细信息。

$ git show 

#显示某个具体commit ID提交的详细信息。

$ git show commitID

#显示历史提交记录

$ git log

#将文件添加到Git的暂存区。

$ git add  .

#从暂存区和工作目录中删除文件

$ git rm xx.c

#将暂存区内容添加到本地仓库中

$ git commit

# commit内容分段提交

$ git commit -s 分段提交内容
ctrl + o
回车
ctrl + x

# 对之前最近一次没合入仓库的commit 提交进行再次修改可以是文件内容也可以是commit 信息

$ git commit --amend

#将本地提交推送到远程仓库

$ git push

#有时候本地代码和远程仓库有冲突的时候,就需要强推到仓库

$ git push -f

#显示工作目录和暂存区的状态。

$ git status 

#显示历史提交记录

$ git log

#从log历史记录中查找关键字touchpanel

$ git log --grep="touchpanel"

#仅显示指定John作者相关的提交

$ git log --author="John"

#仅显示指定提交者John相关的提交

$ git log --committer="John"

#查看某个时间段的提交记录

$ git log --after="2020-9-23 00:00:00" --before="2020-9-23 23:59:59"

#查看具体某个目录drivers/media/i2c下的修改历史提交记录

git log --oneline  drivers/media/i2c

#从仓库中删除已提交的某个文件

$ git reset -f xxx.txt

#给一个提交打一个标签,一般是出版本的人打tag

$ git tag

#将A分支提交内容移动到B分支

$ git checkpick 

#下载github上的提交

git clone xxx.git

另外推荐Linux上有两个查看git log历史记录的工具是gitk,tig

gitk是图形化查看git提交的目录

tig是命令去看历史提交的目录

相关推荐

MySQL进阶五之自动读写分离mysql-proxy

自动读写分离目前,大量现网用户的业务场景中存在读多写少、业务负载无法预测等情况,在有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至会对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压...

Postgres vs MySQL_vs2022连接mysql数据库

...

3分钟短文 | Laravel SQL筛选两个日期之间的记录,怎么写?

引言今天说一个细分的需求,在模型中,或者使用laravel提供的EloquentORM功能,构造查询语句时,返回位于两个指定的日期之间的条目。应该怎么写?本文通过几个例子,为大家梳理一下。学习时...

一文由浅入深带你完全掌握MySQL的锁机制原理与应用

本文将跟大家聊聊InnoDB的锁。本文比较长,包括一条SQL是如何加锁的,一些加锁规则、如何分析和解决死锁问题等内容,建议耐心读完,肯定对大家有帮助的。为什么需要加锁呢?...

验证Mysql中联合索引的最左匹配原则

后端面试中一定是必问mysql的,在以往的面试中好几个面试官都反馈我Mysql基础不行,今天来着重复习一下自己的弱点知识。在Mysql调优中索引优化又是非常重要的方法,不管公司的大小只要后端项目中用到...

MySQL索引解析(联合索引/最左前缀/覆盖索引/索引下推)

目录1.索引基础...

你会看 MySQL 的执行计划(EXPLAIN)吗?

SQL执行太慢怎么办?我们通常会使用EXPLAIN命令来查看SQL的执行计划,然后根据执行计划找出问题所在并进行优化。用法简介...

MySQL 从入门到精通(四)之索引结构

索引概述索引(index),是帮助MySQL高效获取数据的数据结构(有序),在数据之外,数据库系统还维护者满足特定查询算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构...

mysql总结——面试中最常问到的知识点

mysql作为开源数据库中的榜一大哥,一直是面试官们考察的重中之重。今天,我们来总结一下mysql的知识点,供大家复习参照,看完这些知识点,再加上一些边角细节,基本上能够应付大多mysql相关面试了(...

mysql总结——面试中最常问到的知识点(2)

首先我们回顾一下上篇内容,主要复习了索引,事务,锁,以及SQL优化的工具。本篇文章接着写后面的内容。性能优化索引优化,SQL中索引的相关优化主要有以下几个方面:最好是全匹配。如果是联合索引的话,遵循最...

MySQL基础全知全解!超详细无废话!轻松上手~

本期内容提醒:全篇2300+字,篇幅较长,可搭配饭菜一同“食”用,全篇无废话(除了这句),干货满满,可收藏供后期反复观看。注:MySQL中语法不区分大小写,本篇中...

深入剖析 MySQL 中的锁机制原理_mysql 锁详解

在互联网软件开发领域,MySQL作为一款广泛应用的关系型数据库管理系统,其锁机制在保障数据一致性和实现并发控制方面扮演着举足轻重的角色。对于互联网软件开发人员而言,深入理解MySQL的锁机制原理...

Java 与 MySQL 性能优化:MySQL分区表设计与性能优化全解析

引言在数据库管理领域,随着数据量的不断增长,如何高效地管理和操作数据成为了一个关键问题。MySQL分区表作为一种有效的数据管理技术,能够将大型表划分为多个更小、更易管理的分区,从而提升数据库的性能和可...

MySQL基础篇:DQL数据查询操作_mysql 查

一、基础查询DQL基础查询语法SELECT字段列表FROM表名列表WHERE条件列表GROUPBY分组字段列表HAVING分组后条件列表ORDERBY排序字段列表LIMIT...

MySql:索引的基本使用_mysql索引的使用和原理

一、索引基础概念1.什么是索引?索引是数据库表的特殊数据结构(通常是B+树),用于...