git命令学习记录

1. git reset 参数说明

git reset 是用来回退版本的,它可以添加三个参数,常用的使用格式是这样的:git reset [--hard | --soft | --mixed] 版本号

一般使用git修改文件并提交需要三步,第一步在文本编辑器中编辑文件,也就是在工作区修改文件;第二步使用git add添加文件,将修改的文件存到暂存区;第三步使用git commit提交文件,将暂存区的文件提交到当前分支。

git reset 的这三个参数对应的就是回退到目标版本后的上面的三种状态:

  • git reset --mixed 版本号回退后是刚使用文本编辑器修改好还没有git add的状态;
  • git reset --soft 版本号回退后是使用使用git add但是还没有使用git commit的状态;
  • git reset --hard 版本号回退后直接就是已经使用git commit提交后的状态;

2. 撤销文件修改

2.1 撤销工作区的文件修改

可以使用以下命令来撤销工作区的文件修改

shell 复制代码
git checkout -- <filename>
或
git restore <filename>

使用git checkout撤销文件修改的时候不能丢掉后面的--,否则就会变成切换分支的命令,--的前后都应该有空格。
git checkout撤销的是工作区的文件修改,如果撤销修改的文件还没有存到暂存区,那就会回到和版本库一样的状态,如果撤销修改的文件已经存到了暂存区,那就会回到和暂存区一样的状态。
git checkout只会影响工作区,会让文件回到上一次git commit或者git add的状态。
git restore使用时候直接在后面加文件名就可以撤销工作区的修改了。

2.2 撤销暂存区的修改

撤销暂存区的修改也是两条命令

shell 复制代码
git restore --staged <filename>
或
git reset <filename>

这两个命令只会撤销暂存区的文件修改,如果文件保存到暂存区以后又在工作区进行了修改,这时候使用这两条命令只会影响暂存区的文件,不会影响工作区的内容,如果想同时修改暂存区的工作区就需要和上面的命令结合使用。

如果是文件删除操作已经git add到了暂存区,那么只能使用git restore --staged filename来恢复,这时候git reset是不能用的。

3. 分支管理

3.1 查看当前分支

使用git branch显示当前存在的分支列表。

3.2 创建分支

shell 复制代码
git branch <dev>
或
git checkout -b <dev>
或
git switch -c <dev>

第一条表示创建分支dev,但是当前的工作分支还是原来的;后面两条表示创建分支dev并将当前的工作分支切换到dev

3.3 切换分支

shell 复制代码
git checkout <dev>
或
git switch <dev>

这两条命令表示将当前的工作分支切换到dev分支。

3.4 合并分支

shell 复制代码
git merge <dev>

git merge命令用于合并dev分支到当前分支。
git log --graph --pretty=oneline --abbrev-commit可以查看分支合并图。

3.5 删除分支

shell 复制代码
git branch -d dev

安全删除本地分支,只有dev分支合已合并的情况下才能使用这个命令删除,把d改成D就可以在未合并的情况下删除本地分支。

相关推荐
星火开发设计1 小时前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
BackCatK Chen2 小时前
第 1 篇:软件视角扫盲|TMC2240 软件核心特性 + 学习路径(附工具清单)
c语言·stm32·单片机·学习·电机驱动·保姆级教程·tmc2240
深蓝海拓2 小时前
PySide6从0开始学习的笔记(二十五) Qt窗口对象的生命周期和及时销毁
笔记·python·qt·学习·pyqt
理人综艺好会2 小时前
Web学习之用户认证
前端·学习
●VON2 小时前
React Native for OpenHarmony:项目目录结构与跨平台构建流程详解
javascript·学习·react native·react.js·架构·跨平台·von
AI视觉网奇2 小时前
FBX AnimSequence] 动画长度13与导入帧率30 fps(子帧0.94)不兼容。动画必须与帧边界对齐。
笔记·学习·ue5
无限进步_3 小时前
面试题 02.02. 返回倒数第 k 个节点 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
2401_859049083 小时前
git submodule update --init --recursive无法拉取解决
前端·chrome·git
woodykissme3 小时前
倒圆角问题解决思路分享
笔记·学习·工艺
黎雁·泠崖3 小时前
Java核心基础API学习总结:从Object到包装类的核心知识体系
java·开发语言·学习