git进阶操作

news2024/10/3 22:20:06

一、git 基础概念1.

1.1 三种状态:

工作区(unstage)——已修改(modified)

暂存区(stage)——已暂存(staged)

对象区——已提交(commited)

 

工作区---add----暂存区----commit----对象区---push---git服务器

1.2,git init:将该路径纳入git管理

版本库删除:rm -rf .git

1.3,git status 查看状态

在哪个分支、是否提交、是否跟踪

1.4,工作区--->暂存区:git add hello.txt 

1.5,工作区<---暂存区:git  rm --cachede hello.txt

1.6,暂存区--->对象区:git commit -m "message"

1.7,工作区<---对象区:修改hello.txt

1.8,git log:查看git log日志;

        git log -n 最近的次数】

        git log --pretty=oneline

1.9,sha1值:md5加密算法随机数 分布式id生成器,用于区分哪一次提交,并且不重复

二、git操作与系统操作及ignore

2.1 git rm 删除文件会到暂存区:(1) 删除,(2)暂存区

>git rm b.txt   

>如果彻底删除:git commit -m "彻底删除b.txt"

系统命令rm:删除到工作区

2.2 后悔操作:

(1)恢复工作区

        git reset HEAD b.txt 

(2)checkout

        git checkout -- b.txt

通过git status查看再哪个区

2.3 修改注释

git commit --amend -m "修正"       #修正前一次commit

2.4 忽略文件git ignore

创建ignore:touch .gitignore

vi .gitignore,将要忽略的文件写入

通配符:

(1) * 任意字符:*.properties

(2) !与  *  一起使用:

        *.properties

        !b.properties

(3) 目录

dir/   忽略文件夹

dir/*.txt

dir/**/*.txt 忽略任意级目录

默认忽略空文件夹

2.5 分支:开发到一半建分支

(1)查看分支:git branch

(2)创建分支:git branch xx

    (3) 切换分支:git checkout xx分支

  (4)删除分支:git branch -d xx分支   (不能删除当前分支,如果存在未合并分支,不能删除。删除之前,建议先合并。-D 强行删除) 

  (5)先创建分支并切换:git checkout -b new-branch

(6)合并分支:git merge new-branch

 (7)新分支写操作

        如果文件在新分支a中进行了写操作,但并没add和commit,在master中可以看到A中的写操作,如果进行了commit,master就无法看到。

        如果文件在新分支a中进行了写操作,但并没add和commit,如果删除分支,是可以成功的。

(8)git branch -v

分支最近一次sha1值的前几位。

分支:是一个commit链,工作记录线。

分支名:master 指向当前的提交commit

HEAD指向当前分支

 

cd .git

cat HEAD 可以看到HEAD的指向分支

(9)master合并bev:通过合并直接追赶bev——fast forward 分支指针的移动

git checkout master

git merge bev (会复制bev中间的过程。master和bev指向同样的commit)

fast forward:1-两个分支会归于一点,2-会丢失分支信息

git 在merge时,默认使用fast forward,

也可以禁止:git merge --no-ff ,1-两个分支不会归于一点,主动合并分支会前进一步

2-分支信息完整,不会丢失分支信息

(10)合并:如果冲突,需要解决冲突,merge 默认fast forward

merge 冲突:1-先修改vi ,2-git add完,再次提交

现在的git add不是从工作区到暂存区,这里的add只是告知git,解决冲突。

git add a.txt

git commit -m "解决冲突"

解决冲突时,需要感知bev内容,会触发bev操作,所以会把bev的b7d9f的操作一起合并过去。

(注意:master在merge时候,如果遇到冲突并解决,则解决冲突会进行2次提交,1次是最终提交,1次是将对方的提交信息也拿来。)

解决完冲突,master的内容,仍然与bev不同。master比bev先一步。

如果此时bev去合并master,是否会冲突?此时不会再报冲突。

如果落后一方合并前面一方,则不会冲突。如果两方不是处在一条链上进行合并,则合并会冲突。

(11)git log --graph 图形法验证。

git log --graph --pretty=oneline --abbrev-commit

2.6,版本回退 版本穿梭,在多个commit之间穿梭:回退、前进

git commit -am "先add再commit",第一次不能用

回退到2次commit:git reset --hard HEAD^^   几个^回退几次

回退到前n次commit:git reset --hard HEAD~n

回退到前某一次commit:git reset --hard 803c9 (sha1值的前几位)

git reset之后,后面的git log记录都不见了,如果想回到后面某一分支,可通过下面操作: 

git reflog:查看log记录,记录所有操作,帮助我们实现后悔操作,借助于良好的commit注释习惯

git reset --hard sha1

2.7  checkout放弃修改,放弃的是工作区的修改,相对于暂存区

 

git reset HEAD a.txt

reset:将之前增加到暂存区的内容,回退到工作区

checout :版本游离

 

 

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

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

相关文章

moment.js常见格式化处理各种时间方法

Moment.js 是一个简单易用的轻量级 JavaScript 日期处理类库,提供了日期格式化、日期解析等功能。它支持在浏览器和 NodeJS 两种环境中运行。此类库能够将给定的任意日期转换成多种不同的格式,具有强大的日期计算功能,同时也内置了能显示多样的日期形式的函数。另外,它也支…

博弈论--sg函数

sg函数------ 定义终止状态的SG函数值为0。如果游戏已经结束&#xff0c;即达到了终止状态&#xff0c;那么对应的SG函数值就是0。即先手的sg值为0&#xff0c;则先手必败&#xff0c;否则先手必胜。 如何求sg函数值--------对于每个可能的移动&#xff0c;将后续状态的SG函数…

「从零入门推荐系统」21:chatGPT、大模型介绍

作者 | gongyouliu 编辑 | gongyouliu 自2022年11月30日OpenAI发布chatGPT以来&#xff0c;大模型技术掀起了新一轮人工智能浪潮。chatGPT在各个领域&#xff08;包括对话、摘要、内容生成、问题解答、识图、数学计算与推理、代码编写等&#xff09;取得了比之前算法好得多的成…

测试开发之路 (工具篇)--Docker

目录 前言 什么是 docker 在 demo 中学习 mysql test link 更复杂点的场景 前言 Docker是一种开源的容器化平台&#xff0c;它可以帮助开发人员和测试人员更轻松地构建、部署和运行应用程序。在测试开发中&#xff0c;Docker可以提供许多便利和优势。 什么是 docker 官…

VMware Cloud Director 10.5 - 领先的云服务交付平台

VMware Cloud Director 10.5 - 领先的云服务交付平台 Support for vSphere 8.0U1 & NSX 4.1 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-cloud-director-10/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.or…

【ShenYu系列】ShenYu的SPI实现源码分析

前言 前面我已经介绍【面试系列】详细拆解Java、Spring、Dubbo三者SPI机制的原理&#xff0c;当已经有了合适的实现&#xff0c;shenyu自身的SPI和上面的有啥区别&#xff0c;值得玩味。 什么是SPI SPI就是Service Provider Interface&#xff0c;直译"服务提供方接口&…

go+vue+wails写一个简单的密码加密器

git仓库 gitee: malred/password-generator-wails-vue gitee&#xff1a; malred/password-generator-wails-vue github: https://github.com/malred/password-generator-wails-vue wails是什么 我们用它来套壳前端项目&#xff08;vue&#xff09;&#xff0c;打包成桌面端…

Java虚拟机——类加载机制概述 类加载的时机

在Class文件中描述的各类信息&#xff0c;最终都需要加载到虚拟机中之后才能被运行和使用。本章将会介绍虚拟机如何加载这些Class文件&#xff0c;Class文件中的信息进入到虚拟机后会发生什么变化。类加载机制&#xff1a;Java虚拟机把描述类的数据从Class文件加载到内存&#…

【ArcGIS】shp导入报错ORA-00911无效字符

这个当个问题记录以下&#xff0c;就是shp文件名或者字段名有非正常字符&#xff0c;修改下名称重新导入即可&#xff1b; 直接改shp没法修改字段&#xff0c;会报错&#xff0c;需要先转化为gdb文件&#xff0c;然后在修改

【Spring】Spring AOP入门及实现原理剖析

文章目录 1 初探Aop1.1 何为AOP&#xff1f;1.2 AOP的组成1.2.1 切面(Aspect)1.2.2 连接点(Join Point)1.2.3 切点(Pointcut)1.2.4 通知(Advice) 1.3 AOP的使用场景 2 Spring AOP入门2.1 添加 Spring AOP 框架⽀持2.2 定义切面和切点2.3 定义相关通知 3 Spring AOP实现原理3.1 …

tauri自定义窗口window并实现拖拽和阴影效果

需求说明 由于官方提供的窗口标题并不能实现我的需求&#xff0c;不能很好的实现主题切换的功能&#xff0c;所以根据官方文档实现了一个自定义的窗口&#xff0c;官方文档地址&#xff1a;Window Customization | Tauri Apps 但是实现之后&#xff0c; 没有了窗体拖拽移动的…

linux系统编程-进程

目录 1 程序和进程 1.1 并发 1.3 多道程序设计 1.4 CPU 和 MMU 1.5 进程控制块 PCB 1.6 进程状态 1.7 环境变量 1.8 setenv 函数 2. 进程控制 2.1 fork 函数 2.2 循环创建 n 个子进程 2.3getpid 函数 2.4 getppid 函数 2.5 getuid 函数 2.6 getgid 函数 2.7 进…

分表后mybatis-plus删除操作失效等问题处理

因为重构dao层&#xff0c;问题太多了&#xff0c;于是想着另起一个章节。 3 mybatis封装对象的问题 直接使用mybatis自身的对象&#xff0c;会有问题&#xff0c;他的列表对象会设置一个id&#xff0c;导致后续的工程会出问题 <select id"getStatementDefaultEquation…

基于SpringBoot+vue的银行OA系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

使用Electron包装ruoyi-ui/ruoyi-vue实践总结

背景&#xff1a;最近公司新起的项目&#xff0c;由于工期、资源等原因&#xff0c;采用ruoyi框架快速实现开发&#xff0c;由于需要构建客户端&#xff0c;所以借助electron来实现。 electron 是使用javascript html css来构建跨平台的桌面应用程序。 官网地址&#xff1a;简介…

ModelWhale 基于 AI for Science 助力航遥中心基础设施建设

2023 年 3 月&#xff0c;科技部会同自然科学基金委启动“人工智能驱动的科学研究&#xff08;AI for Science&#xff09;”专项部署工作。科技部新一代人工智能发展研究中心主任赵志耘认为&#xff0c;AI for Science 将突破传统科学研究能力瓶颈&#xff0c;成为全球科研新范…

【2023-07-18】jsvmp逆向profileData

加密逻辑 注册gid需要用到profileData&#xff0c;profileData的加密逻辑是将一个46对键值对的json经过bas64编码后进行des加密&#xff0c;这46对键值对都是环境和设备相关的一些参数&#xff0c;要完整还原profileData还需要将这些参数的生成逻辑进行还原。 变量名说明key…

Python开发项目基于卷积神经网络的车牌识别仿真软件设计与实现

博主介绍&#xff1a;擅长Java、微信小程序、Python、Android等&#xff0c;专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不然下次找不到哟 Java项目精品实战案例…

ICASSP2023论文解读|如何检测会议记录中的待办事项?

得益于语音识别技术的发展&#xff0c;人工智能可以帮助人们记录会议&#xff0c;自动检测与会后行动项关联的会议内容&#xff0c;并进行总结。 行动项识别对于管理会后待办任务至关重要。 针对对于行动项识别任务&#xff0c;相关数据集稀缺且规模小。因此&#xff0c;达摩…

酷炫无敌!10分钟学会制作3D园区大屏,职场新人也能秒变大神!

近年来随着大数据的飞速发展&#xff0c;各大行业都进行了一定的产业革新&#xff0c;智慧园区也逐渐进入企业视野并成为主流&#xff0c;不论大小企业&#xff0c;领导老板都要求员工制作出智慧园区的酷炫大屏&#xff0c;不顾及其中的技术难度&#xff0c;只想看到最终成果&a…