Git使用技术总结

本人使用git已有两年半时间,但是真正分布式使用很少,所以今天把之前的学习总结一下,并且把今后的一些技术给研究一下,主要是分支技术。

1 暂存区与工作区

暂存区是git的工作空间,在暂存区的文件受到git的控制。而git的暂存区只有一个,在分支操作的时候尤其需要注意,本人之前由于到这个点不清楚,并且对git操作不熟练,导致一个开发几个月的超大项目被误删。暂存区主要是跟踪需要跟踪的文件,

git add .

可以将所有的未被.gitignore声明的文件添加到暂存区。

2 分支操作

接下来用rust项目介绍分支操作

创建一个rust项目

cargo new TestGit

在这里插入图片描述
创建完成

git branch -b [name]  # 创建并切换到这个分支

在这里插入图片描述
但是切换回来遇到了错误,切换失败,所以我重新创建了main分支,但是不应该有这个问题,但是又确实遇到了,希望各位大佬帮我回答这个问题。
git切换分支一定要把修改提交,因为暂存区只有一个,如果不提交就切换,会把修改直接带过去,目标分支就会被影响,但是我记得以前如果没提交的时候会警告,暂存区不干净会禁止切换,但是我这个电脑没有任何反应,直接就可以切换

git status # 查看暂存区情况

在这里插入图片描述
现在暂存区很干净,如果对文件进行修改,新手一定要记得提交,否则直接带到新的分支很麻烦,如果我现在对src下的文件进行修改
在这里插入图片描述
我进行了修改,但是没有提交,现在我切换到new分支
在这里插入图片描述
可以看到对文件的修改直接带过来了也就是打印main分支那行语句,这是很严重的问题,各个分支之间应该独立
在这里插入图片描述
如果我在main分支提交过再切换回来就没有问题了
在这里插入图片描述
现在暂存区已经干净了,可以正常切换
在这里插入图片描述
可以看到现在main文件是原来正常的,所以切换分支一定要记得保证暂存区的干净

3 关于分支合并

git merge [name] # 将name分支合并到当前分支

在这里插入图片描述
main分支一般都是要落后于其他分支,但是稳定
在这里插入图片描述
现在尝试合并new分支,如果正常,就可以再main分支看到new分支的信息
在这里插入图片描述
第二行的打印信息被我修改了但是没展示,不是git的问题,可以看到现在在main分支有new分支里面的信息,注意分支变换。

冲突

正常直接使用这个命令就可以合并分支,但是可能遇到合并冲突,如果两个分支对同一个文件的同一行都有修改,git不知道以谁为标准,这样就造成了冲突,需要手动解决冲突。
在这里插入图片描述
可以看到已经产生了冲突,因为同一行有两种代码内容,现在解决
在这里插入图片描述
=====上面是当前分支,下面是new分支《《《《《 中间的是冲突部分 》》》》》》现在手动处理,
在这里插入图片描述
冲突解决,完成合并,并且暂存区很干净
在这里插入图片描述

最近公共祖先

git分支合并是找最近公共祖先节点,
在这里插入图片描述
不要看里面的commit内容,因为我做了一些修改,主要看节点,可以看到恢复节点处有一个分支,我新拉取一个分支,如果在这上面我要merge,就会从这里开始进行合并。

详细的学习还是要看官方参考文档

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值