3.3.3 新增文件 & 再次查看状态(检测到未追踪的文件)
【Git 本地库基本教程】3.4 添加暂存区 3.4.1 基本语法
git add name(这个name是你要添加的文件或者文件夹的名称)
3.4.2 查看状态(检测到暂存区有新文件)
文件从红色字体变成了绿色字体,说明git已经追踪(知道)了这个文件 。
使用“git rm -- 文件名”可以从暂存区删除你要删除的文件 。
3.5 提交本地库 3.5.1 基本语法
git-m "日志信息" name(文件名)
3.5.2 查看提交(没有文件需要提交)
3.6 修改文件 3.6.1 基本语法
文件已被修改(相当于新文件),需要从工作区再次add到暂存区,并且需要 。
3.7 历史版本(版本穿梭) 3.7.1 查看历史版本
3.7.2 版本穿梭
git reset --hard 版本号(上图中黄色的字符串就是版本号,分为详细版本号和精简版本号)
穿越之后,你的指针就指向你的穿越目标所对应的版本,并修改时从指针所指为基础开始修改 。
附:cat 文件名——可以查看文件内容
四.Git分支操作
4.1 什么是分支?
在版本控制过程中,同时推进多个任务 , 为每个任务,我们就可以创建每个人物的单独分支 。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行 。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本 。(分支底层其实也就是指针的运用)
4.2 分支的好处
同时并行推进多个功能开发,提高开发效率 。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响 。失败的分支删除重新开始即可 。
4.3 分支的操作
命令名称
作用
git分支名
创建分支
git-v
查看分支
git分支名
切换分支
git merge 分支名
把指定的分支合并到当前分支上
4.3.1 查看分支 ①基本语法
git-v
②实操案例
文章插图
4.3.2 创建分支 ①基本语法
git分支名
②实操案例
(创建一个test分支,图中我的test分支有内容是因为他会把主分支的内容复制了一份)
!git后面括号内有个蓝色的,说明当前分支仍处于分支
4.3.3 切换分支 ①基本语法
git分支名
②实操案例
(括号内蓝色的分支为test)
4.3.4 修改分支 ①基本语法:vim 文件名
②修改
细节讲解:下 git后会进入vim界面 。输入小写字母 i,此时进入编辑模式 , 可以输入你想输入的内容 。按下 esc 键,此时退出编辑模式 , 输入英文语法下的冒号 :,再输入 wq 即可保存退出 。
③查看本地库状态(git )
第一行ontest说明此时不在主分支上,然后修改过后并没有add、、push等行为,显示红色(具体细节往前翻至3.3、3.4、3.5)
add后
后并查看(cat)
4.3.5 合并分支
切换会原主线发现并没有修改内容 , 仍然是原内容
①基本语法
git merge 分支名
②实操案例
(文件内容已修改,这里test分支是基于原分支上进行修改,因此合并十分顺利,没有产生冲突,具体内容看下一小节)
4.3.6 产生冲突 ①冲突产生的原因
合并分支时 , 两个分支在同一文件的同一个位置有两套完全不同的修改 。Git无法替我们决定使用哪一个 。必须人为决定新代码的内容 。
②制造冲突
先修改主线的内容
再修改test支线的代码内容
③产生冲突
(第二行显示冲突;第三行显示自动合并失败)
注意:下一行代码()中提示说明正在合并中
④手动合并
文章插图
vim打开文件后
(这中间是当前分支的修改内容)
(这中间是产生冲突的分支修改内容)
手动合并很简单?。恍枰涯阆胍粝碌牟糠至粝? ,不想要的删除,之后再把这些特殊符号删除即可(这里保持代码行数不变)
这里我删除了三条分界线,第一部分的和第二部分的,然后esc,wq退出即可 。
4.3.7 解决冲突
由4.3.6手动合并之后,我们还需要两步操作(add、)
①add(添加到暂存区)
②(执行提交)
注意注意?。。?
此时使用git 命令时不能带文件名?。。?
这里我尝试时加上了文件名,然后给git报错:不知道哪一个分支里面的demo.c
不带文件名之后成功合并 , 可以看下一行代码()中已经没有,而是
?。。≌馐焙虻闹飨呋乖谏? ,所以手动合并的结果在上显示,并不会在test中有所修改 。
4.3.8 删除分支
注意:当你在你要删除的分支上的时候,git是不允许你去删除分支的!
①基本语法
// 删除本地分支git branch -d localBranchName// 删除远程分支git push origin --delete remoteBranchName
②删除本地分支
如果你还在一个分支上,那么 Git 是不允许你删除这个分支的 。所以 , 请记得退出分支:git。
通过git-d
删除一个分支,比如:git-d fix/ 。
当一个分支被推送并合并到远程分支后,-d才会本地删除该分支 。如果一个分支还没有被推送或者合并,那么可以使用-D强制删除它 。
③删除远程分支
error: unable to push to unqualified destination: remoteBranchName The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to 'git@repository_name'
git fetch -p
-p的意思是“精简” 。这样 , 你的分支列表里就不会显示已远程被删除的分支了 。
4.4 创建分支和切换分支图解
创建hot-fix(热修)分支【热修是常用分支名称,本人为了偷懒就写了一个test】
将hot-fix分支合并至主线
总结:、hot-fix其实都是指向具体版本记录的指针 。当前所在的分支,其实是由HEAD决定的 。所以创建分支的本质就是多创建一个指针 。
HEAD如果指向 , 那么我们就在分支上;如果指向hot-fix,我们就在hot-fix分支上 。(在.git里面找到HEAD文件可以查看当前指针所指向分支)
所以?。?所谓的切换分支,其实就是移动HEAD指针指向不同的地方 。(wok!真心累死我了,爆肝完第四章)
- 西安买房不是本地户籍怎样买办理人才引进 西安买房不是本地户籍怎样买
- 怎么导出全民k歌 全民K歌本地歌曲如何导出
- Stable Diffusion本地部署
- 左连接和右连接的区别 数据库左连接和右连接的区别
- 2023惠州普通话非本地户口可以报名吗 惠州普通话报名入口
- 上部烟叶烘烤技术要点-百度文库 上部烟叶烘烤技术
- MapReduce和并行数据库,朋友还是敌人?
- 星际战甲狯犽怎么获得 星际战甲库狛怎么获得
- GLM-130B本地部署的实战方案
- Windows11登录本地用户