8.2 git学习二:分支合并,分支删除,reset撤销找回,stash存储及操作,overwritten by checkout

本文详细介绍了Git中分支的创建、切换、合并及删除流程,并深入探讨了解决分支合并冲突的方法。同时,提供了撤销操作的大集合,包括撤销文件添加、修改、提交等常见场景的解决方案。

1、查看分支
git branch
2、创建分支
git branch branch1
3、切换分支
git checkout branch1
注:git log仅会打印当前分支的内容。且创建分支不会自动切换分支。
且新创建的分支独立于当前分支之上。

一、分支合并
当分支不同线路
1、切换回主分支 git checkout master
2、将目标分支与主分支合并 git merge branch1 并输入
在这里插入图片描述

问题一:快速前移(不友好的)
当分支仍和master处在同一条线上
在这里插入图片描述
解决方案
在这里插入图片描述

问题二:合并内容产生冲突
1、当想合并的2个分支,都对同一文件都做了修改,且非祖先级关系。则冲突
**快速前移**(不友好的)
并打开文件
在这里插入图片描述
解决方案一: 打开冲突的文件 删掉冲突合并后的无用内容,再一次commit提交即可。

解决方案二: git merge --abort (方便)

当你合并完分支到master后,其实该分支就没有任何后期用途了,相当于补丁一样。打完不可能再回退。(已经是正式版本)

2、当想合并的2个分支,对不同文件进行修改,非祖先级。则直接合并。
3、当想合并的2个分支,对同一文件都做了修改,是祖先级关系。则快速前移。

二、分支删除
git branch -d <branchName>

问题一: 未充分合并的分支
在这里插入图片描述
如果确定删除未合并的分支,git branch -D branch3

三、撤销大集合
情景一:
当你 git add a.txt 文件给git暂存区管理
突然你不想要git管理文件(即从git仓库删除此文件 )了。
则在暂存区删除它: git rm --cached a.txt
在这里插入图片描述

情景二:
当你 修改一个未被加入暂存区的文件,而且修改了多处,你想回到之前的状态。
git checkout – a.txt //-- 前后有空格
在这里插入图片描述
在这里插入图片描述
注:checkout不会带上分支的指针。

情景三、
当你 修改了1个文件a(之前有提交记录的文件),又创建了1个文件b,你的初衷是进行2次提交,而手误git add .
使用 git reset HEAD a.txt // 取消掉已添加到暂存区的内容,git之前的暂存区有它时使用
在这里插入图片描述

情景四:
当你提交commit时,写错了描述。 请紧接着
使用 git commit -m ‘新建1个b文件’ --amend // 替换上一次提交的commit描述

情景五:
当你修改了a,b两个文件时,却只提交了a。
那么 ,先将b放入暂存区 git add b.txt
git commit --amend,会进入编辑模式,无需改描述,直接:wq
然后git log 发现 a,b已合并,且描述也正确

撤销最近一次提交
git reset HEAD^ // 多少个^代码撤销最近多少次
git reset HEAD~2 // 多少数字代表撤销最近多少次
注:撤销git reset 可以跟文件名 、HEAD(撤销) 、哈希值(找回)
并不是真正的撤销和找回,而是头指针发生变化。

若忘记保留 git log 撤销之前的哈希。则可以
查看提交历史记录 git reflog
在这里插入图片描述如上图,根据历史记录中的哈希去git reset <哈希> 改变指针位置。(即找回由C2指针移动到C3)
在这里插入图片描述

图总结:
在这里插入图片描述
在这里插入图片描述
四、存储及操作

当branch1的暂存区有内容,切换到了branch2 则发现携带着branch1的暂存操作。怎么办?
git stash 存储暂存区及工作目录修改文件 // 即将当前分支的暂存区的内容存储到 stash list中
git stash list 查看存储内容

在这里插入图片描述
git stash apply <存储标号> // 取出文件(不放入暂存区)
git stash apply <存储标号> --index // 取出文件(放入暂存区)
git stash drop <存储标号> // 移出存储
注:存储标号默认为最新条

如果存储未追踪的文件。需要 git stash -u
在这里插入图片描述
在这里插入图片描述
overwritten by checkout
https://blog.youkuaiyun.com/qq_32452623/article/details/75645578

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值