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

本地仓库管理之当前分支内的操作

以刚搭建好的git仓库为例,刚搭建完的仓库只有master分支,使用git branch查看当前的分支情况。

elf@ubuntu:~/work/example/hello$ git branch

*所在分支为当前分支,即master分支

当前分支进行源码修改时简单流程图如下:

在当前分支上进行源码修改前,需要先查看当前分支工作区是否干净,干净则进行修改工作。如果之前在分支上做过修改且没有提交,需要进行清除,因此也需要养成改完及时提交的习惯。

使用git status查看,该分支内没有未提交的内容,工作区是干净的,可以直接进行源码修改

elf@ubuntu:~/work/example/hello$ git status

git文件的添加、删除及提交

创建hello1.c,删除hello.c,此时是在工作区进行修改,并未提交到暂存区,使用git status查看工作区状态:

从状态中可以看到当前分支,未提交的更改为hello.c且前面有一个delete 说明,hello.c需要在git跟踪中被删除;还可以看到未被跟踪的文件为hello1.c,该文件是新添加的,若需要添加到跟踪中,需要使用git add添加 ,操作如下

elf@ubuntu:~/work/example/hello$ git rm hello.celf@ubuntu:~/work/example/hello$ git add hello1.c

 

通过状态信息可看到,修改提交到暂存区,如果该修改最终要使用,需要提交版本

elf@ubuntu:~/work/example/hello$ git commit -m "delete hello.c;add hello1.c"

 

记录的查看

如果查看提交的修改,可以使用以下指令:

git show查看最新一次提交的具体修改内容:

git show --stat查看最新一次提交修改过的文件:

git show [commitid]查看某次提交的具体修改内容:

git show [commitid] --stat查看某次提交修改过的文件:

commit回退

commit回退主要使用git reset命令,根据此命令后面参数的不一样,撤回的效果不通。

执行git reset --hard [commitid],可以回退到指定的commit:

使用--hard参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交。当然也可以使用此命令,找到最新的commit号通过此命令再切换回来。

工作区的修改-----未提交到暂存区

在工作区修改过程中,如果未提交到暂存区,需要放弃文件的修改可以如下操作。

如下图工作区的hello1.c做了修改,但未提交到暂存区:

此时如果放弃修改,可以使用git checkout -- [filename]

elf@ubuntu:~/work/example/hello$ git checkout hello1.c

 

此外清除所有未提交的修改,可以使用git checkout。

工作区的修改----已提交到暂存区

在工作区修改过程中,如果已提交到暂存区,需要放弃文件的修改可以如下操作。

如下图工作区的hello1.c做了修改,且已经提交到暂存区:

撤回提交到暂存区,需要执行git reset HEAD -- [filename],文件回到工作区可以重新更改再提交

elf@ubuntu:~/work/example/hello$ git reset HEAD -- hello1.c

git的patch打入打出

简单来说patch中存储的是你对代码的修改。在git中我们常用git format-patch和git am命令生成patch和打patch,用此方法获得的patch包含commit里提交的code修改和commit信息,可以获取任意两个commit之间的patch。

生成patch常用到的指令如下,其中<r1> <r2>代表具体commit号

打入patch常用到的指令如下,xxx.patch表示patch的名称:

http://www.lryc.cn/news/523693.html

相关文章:

  • 《内网穿透:网络拓展与安全防护的平衡艺术》
  • 【python写个可以运行的2048小游戏】
  • 【Flink系列】9. Flink容错机制
  • DETR论文阅读
  • 关于vite+vue3+ts项目中env.d.ts 文件详解
  • 如何优化Elasticsearch大文档查询?
  • Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正
  • Linux中DataX使用第一期
  • [Qt]事件-鼠标事件、键盘事件、定时器事件、窗口改变事件、事件分发器与事件过滤器
  • 关于机器学习的一份总结
  • 推荐一个开源的轻量级任务调度器!TaskScheduler!
  • 【18】Word:明华中学-儿童医保❗
  • 如何用selenium来链接并打开比特浏览器进行自动化操作(1)
  • 基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
  • 读spring官方文档的一些关键知识点介绍
  • 2024年AI与大数据技术趋势洞察:跨领域创新与社会变革
  • ThinkPhp项目解决静态资源请求的跨域问题的解决思路
  • mybatis的多对一、一对多的用法
  • 消息队列实战指南:三大MQ 与 Kafka 适用场景全解析
  • 前端发送Ajax请求的技术Axios
  • 第17章:Python TDD回顾与总结货币类开发
  • opencv_KDTree_搜索介绍及示例
  • Windows 上安装 MongoDB 的 zip 包
  • 先进制造aps专题二十七 西门子opcenter aps架构分析
  • 【数据分享】1929-2024年全球站点的逐年平均气温数据(Shp\Excel\无需转发)
  • 机器学习——什么是代价函数?
  • docker 部署 MantisBT
  • 02内存结构篇(D1_自动内存管理)
  • Centos 8 交换空间管理
  • “深入浅出”系列之数通篇:(5)TCP的三次握手和四次挥手