git 常用命令有哪些

news2024/12/25 1:08:49

Git 是我们开发工作中使用频率极高的工具,下面总结下他的基本指令有哪些,顺便温习一下。

前言

一般项目中长存2个分支: 主分支(master) 和开发分支(develp)

项目存在三种短期分支 :功能分支(feature branch) 补丁分支(hotfix branch) 预发分支(release branch)一旦完成开发,它们就会被合并进develop或master,然后被删除。

虽然是主分支和分支,却是平级关系,develop可以理解为开发库,master为生产库。

一、初始化

# 初始化本地仓库,在当前目录下生成 .git 文件夹

git init

# 查看当前分支状态
git status

 二、Git 配置

# 查看配置信息
git config <--local | --global | --system> -l  // --local:仓库级,--global:全局级,--system:系统级

# 查看当前生效的配置信息
git config -l

# 编辑配置文件
git config <--local | --global | --system> -e

# 添加配置项
git config <--local | --global | --system> --add <name> <value>

# 获取配置项
git config <--local | --global | --system> --get <name>

# 删除配置项
git config <--local | --global | --system> --unset <name>

# 配置提交记录中的用户信息
git config --global user.name <用户名>

git config --global user.email <用户邮箱>

# 更改Git缓存区的大小,如果提交的内容较大,默认缓存较小,提交会失败,缓存大小单位:B,例如:524288000(500MB)
git config --global http.postBuffer <缓存大小>

 三、查看日志log

# 打印所有的提交记录
git log  // Q退出记录

# 打印从第一次提交到指定的提交的记录
git log <commit ID>

# 打印指定数量的最新提交的记录
git log -<指定的数量>  // 例如 git log -3 打印最近3条记录

 四、分支(branch)操作

# 列出本地的所有分支,当前所在分支以 "*" 标出
git branch

# 列出本地的所有分支并显示最后一次提交,当前所在分支以 "*" 标出
git branch -v

# 创建新分支
git branch <分支名>

# 修改分支名称
git branch -m <oldName> <newName>

# 强制修改分支名称
git branch -M <oldName> <newName>

# 删除指定的本地分支
git branch -d <分支名称>

# 强制删除指定的本地分支
git branch -D <分支名称>

 五、切换(checkout)分支

# 切换到已存在的指定分支
git checkout <分支名称>

# 创建并切换到指定的分支,保留所有的提交记录
git checkout -b <分支名称>

# 创建并切换到指定的分支,删除所有的提交记录
git checkout --orphan <分支名称>

# 替换掉本地的改动,新增的文件和已经添加到暂存区的内容不受影响
git checkout <文件路径>

 六、克隆(clone)分支

# 默认在当前目录下创建和版本库名相同的文件夹并下载版本到该文件夹下
git clone <远程仓库的网址>

# 指定本地仓库的目录
git clone <远程仓库的网址> <本地目录>

# -b 指定要克隆的分支,默认是master分支
git clone <远程仓库的网址> -b <分支名称> <本地目录>

 七、提交(commit)操作

# 把暂存区中的文件提交到本地仓库
git commit

# 把暂存区中的文件提交到本地仓库中并添加描述信息
git commit -m "<提交的描述信息>"

# 修改上次提交的描述信息
git commit --amend

 八、合并(merge)操作

# 把指定的分支合并到当前所在的分支下,并自动进行新的提交
git merge <分支名称>

# 把指定的分支合并到当前所在的分支下,不进行新的提交
git merge --no-commit <分支名称>

九、还原(reset)提交记录

# 将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
git reset <commit ID>

# 将 HEAD 的指向改变,撤销到指定的提交记录,文件也修改了
git reset --hard <commit ID>

# 回退3级
git reset --hard HEAD~3

git push -f  // 表示将目前自己本机的代码库推送到远端,并覆盖

# 撤销某次提交
git revert <commit ID>

git revert 与 git reset 最大的不同是,git revert 仅仅是撤销某次提交,而git reset会将撤销点之后的操作都回退到暂存区中

十、tag 操作

# 打印所有的标签
git tag

# 切换到指定的标签
git checkout <标签名称>

# 查看标签的信息
git show <标签名称>

# 删除指定的标签
git tag -d <标签名称>

# 将指定的标签提交到远程仓库
git push <远程仓库的别名> <标签名称>

# 将本地所有的标签全部提交到远程仓库
git push <远程仓库的别名> –tags

十一、差异对比 diff

# 比较暂存区中的文件和上次提交时的差异
git diff --cached
git diff --staged

# 查看从指定的版本之后改动的内容
git diff <commit ID>

# 比较两个分支之间的差异
git diff <分支名称> <分支名称>

十二、其他操作

# 列出已经存在的远程仓库
git remote -v

# 从远程仓库获取最新版本
git pull

# 合并分支出现冲突时,取消合并,一切回到合并前的状态
git merge --abort

# 选择一个commit,合并进当前分支
git cherry-pick <commit ID>

# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
git commit --amend -m <message>

十三、操作案例

# 克隆仓库
git clone http://www.xxx.com/abc.git

# 查看分支当前状态
git status

# 将文件添加到暂存区  .代表所有
git add .

# 把暂存区中的文件提交到本地仓库
git commit -m '添加代码备注'

# 将本地代码提交到远程仓库
git push

总结

1.养成提交描述的好习惯,一个好的提交信息可以方便他人理解您的修改,也有助于日后回顾项目历史;
2.在频繁修改的项目中,保持提交频率,避免许多修改集中在一个提交中,会增加冲突的风险;
3.使用分支开发习惯,将开发环境和生产环境分开,不要在master分支上直接进行开发;
4.当合并时出现冲突,应该及时处理。解决冲突后进行测试,确保代码正常工作;
5.每天开发完成时,更新您的本地仓库,确保与远程仓库保持同步。
6.在项目中添加适当的文档,包括README文件、代码注释和项目文档,以便团队成员能够理解项目的功能和结构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/827564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据技术之Clickhouse---入门篇---SQL操作、副本

星光下的赶路人star的个人主页 积一勺以成江河&#xff0c;累微尘以崇峻极 文章目录 1、SQL操作1.1 Insert1.2 Update 和 Delete1.3 查询操作1.4 alter操作1.5 导出数据 2、副本2.1 副本写入流程2.2 配置步骤 1、SQL操作 基本上来说传统关系型数据库&#xff08;以 MySQL 为例…

忘记数据库密码如何处理

windows 5.6.51版本及以前 #当前账号设置密码 set password password(123456); #当前账号取消密码 set password ; &#xff08;1&#xff09;用管理员身份打开控制台输入 net stop m5&#xff08;我的电脑MySQL名字为m5&#xff0c;根据自己的更改&#xff09; &#xff08;…

爱尔眼科四川省区“同心博爱 光明工程”“西部健康公益行”炉霍站启动

8月1日&#xff0c;“同心博爱 光明工程”“西部健康公益行”炉霍站出征仪式在四川爱尔眼科医院隆重举行。 此次公益活动由民革成都市委会、中共锦江区委统战部指导&#xff0c;如意树爱心促进会主办&#xff0c;民革锦江区总支部、爱尔眼科四川省区支持&#xff0c;四川爱尔眼…

Linux系统CPU和磁盘性能进程分析工具pidstat

一、pidstat对CPU的分析 Linux 上的pidstat(1)工具按进程或线程打印CPU 用量&#xff0c;包括用户态和系统态时间的分解。默认情况下&#xff0c;仅循环输出活动进程的信息。例如&#xff1a; 这个例子捕捉到了系统备份&#xff0c;包含了tar(1)命令&#xff0c;从文件系统读取…

低通、高通、带通、阻通滤波器

目录 低通、高通、带通、阻通滤波器 低通、高通、带通、带阻滤波器的区别 通俗理解&#xff1a; 1、低通滤波器 2、高通滤波器 3、带通滤波器 4、带阻滤波器 5、全通滤波器 低通、高通、带通、阻通滤波器 低通、高通、带通、带阻滤波器的区别 低通滤波器&#xff1a;只…

运维高级--tomcat和jpress

1. 简述静态网页和动态网页的区别。 静态网页&#xff1a;事先创建好的网页&#xff0c;通常通过HTML、CSS和JavaScript等静态文件组成&#xff0c;不需要和服务器进行交互&#xff0c;加载速度快 动态网页&#xff1a;根据用户需求动态生成网页&#xff0c;动态网页通常使用…

3D软件性能的基准测试工具,侧重于测试处理器和显卡,赶紧试试

如果需要&#xff0c;Cinebench 可帮助您评估计算机执行渲染任务的性能。Cinebench 由 Maxon 开发&#xff0c;利用行业标准基准测试技术来评估您的系统在要求苛刻的图形任务中的性能。 它主要侧重于测试处理器和显卡&#xff0c;以确定其渲染复杂 3D 图像和动画的效率。Cineb…

Spring 容器原始 Bean 是如何创建的?

以下内容基于 Spring6.0.4。 这个话题其实非常庞大&#xff0c;我本来想从 getBean 方法讲起&#xff0c;但一想这样讲完估计很多小伙伴就懵了&#xff0c;所以我们还是一步一步来&#xff0c;今天我主要是想和小伙伴们讲讲 Spring 容器创建 Bean 最最核心的 createBeanInstan…

笔试编程题常用框架/方法

目录 考核方式 ACM模式 JavaScript(V8) JavaScript(Node) 数组 折半 / 二分查找 螺旋矩阵* 前缀和-区间求和 差分数组-区间增减 滑动窗口-子串 链表 双指针&#xff08;快慢指针&#xff09; 有序数组的平方 删除/覆盖数组元素 最小长度的子数组 三数之和abcta…

【RTT驱动框架分析05】-spi驱动框架分析

spi 1.应用层的spi操作 spi 消息结构 struct rt_spi_message {const void *send_buf;//发送数据的缓存void *recv_buf;//接收数据的缓存rt_size_t length;//数据长度struct rt_spi_message *next;//指向下一个消息结构unsigned cs_take : 1;//是否执行获取csunsigned cs_…

SQL-每日一题【1174. 即时食物配送 II】

题目 配送表: Delivery 如果顾客期望的配送日期和下单日期相同&#xff0c;则该订单称为 「即时订单」&#xff0c;否则称为「计划订单」。 「首次订单」是顾客最早创建的订单。我们保证一个顾客只会有一个「首次订单」。 写一条 SQL 查询语句获取即时订单在所有用户的首次订…

零碎小知识点汇总——记录工作中遇到的问题——基础积累

1.npm install安装包时&#xff0c;常用的-S -D有什么区别&#xff1f; 参考链接&#xff1a;https://blog.csdn.net/sunyctf/article/details/127667543 主要的区别就是依赖配置写入package.json文件的位置不同而已 npm install有一个别名&#xff1a;npm i -S:写入dependen…

抢夺本地生活万亿蛋糕:“抖音美团们”的攻防战

有人就有市场&#xff0c;有市场就有竞争。面对本地生活这一大“富矿”&#xff0c;互联网大厂们正在开启一场争夺战。 前有抖音、小红书在团购业务上火速推进&#xff0c;近日&#xff0c;随着拼多多正式上线本地生活入口&#xff0c;这个领域的玩家越来越多。 艾瑞咨询数据…

Linux中的特殊进程(孤儿进程、僵尸进程、守护进程)

一、孤儿进程 1&#xff09;父进程退出&#xff0c;子进程不退出&#xff0c;此时子进程被1号&#xff08;init&#xff09;进程收养&#xff0c;变成孤儿进程。 2&#xff09;孤儿进程会脱离终端控制&#xff0c;且运行在后端&#xff0c;不能用ctrlc杀死后端进程&#xff0c;…

Linux ALSA音频工具aplay、arecord、amixer的使用方法

ALSA 是Advanced Linux Sound Architecture的缩写&#xff0c;先进的Linux音频架构&#xff0c;为Linux操作系统提供音频和MIDI功能。 aplay命令 aplay是播放命令。 rootimx6ul7d:~# aplay -h Usage: aplay [OPTION]... [FILE]...-h, --help help--version …

MyBatis-Plus 和达梦数据库实现高效数据持久化

一、添加依赖 首先&#xff0c;我们需要在项目的 pom.xml 文件中添加 MyBatis-Plus 和达梦数据库的依赖&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifac…

pyspark_自定义udf_解析json列【附代码】

pyspark_自定义udf_解析json列【附代码】 一、背景&#xff1a;二、调研方案&#xff1a;三、利用Pyspark udf自定义函数实现大数据并行计算整体流程案例代码运行结果&#xff1a;案例代码&#xff1a;代码地址&#xff1a;代码 一、背景&#xff1a; 车联网数据有很多车的时…

【MATLAB第63期】基于MATLAB的改进敏感性分析方法IPCC,拥挤距离与皮尔逊系数法结合实现回归与分类预测

【MATLAB第63期】基于MATLAB的改进敏感性分析方法IPCC&#xff0c;拥挤距离与皮尔逊系数法结合实现回归与分类预测 思路 考虑拥挤距离指标与PCC皮尔逊相关系数法相结合&#xff0c;对回归或分类数据进行降维&#xff0c;通过SVM支持向量机交叉验证得到平均指标&#xff0c;来…

《华为认证》SR MPLS BE配置

实验需求&#xff1a;在PE1和PE3之间建立mp-bgp邻居传递CE1和CE2的私网路由&#xff0c;并且使用SR mpls BE的方式传递私网流量 实验步骤 步骤1&#xff1a;配置设备接口ip地址以及AS 100内的igp协议&#xff08;略&#xff09; 步骤2&#xff1a;AS 100内的设备开启mpls &am…

Vue2 第十四节 scoped样式和本地存储

1.scoped样式 2.本地存储 一.scoped样式 ① 作用&#xff1a;让样式在局部生效&#xff0c;防止冲突 ② 写法&#xff1a;<style scoped> ③ 代码示例&#xff1a; <style scoped> .demo {background-color: lightblue; } </style> ④ scoped样式一般…