Git分支操作
在版本控制过程中,同时推进多个任务==> 程序员开发与开发主线并行,互不影响
分支底层也是指针的引用
![](https://i-blog.csdnimg.cn/direct/e88206682e694a9eafd0d99f9a36f33f.png)
![](https://i-blog.csdnimg.cn/direct/651703d50da349bd98855d28f958d58d.png)
hot-fix:相当于若在进行++分支合并后程序出现了bug和卡顿++ 等现象,通过热补丁来进行程序的更新,确保程序正常运行
常用操作命令
命令 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定分支与当前分支进行合并 |
切换分支的命令就是通过改变指针指向方向来完成的
创建和查看分支
![](https://i-blog.csdnimg.cn/direct/f3de487e66924d1b919610df15091474.png)
查看分支信息可以看到分支所对应的指针地址 以及对应的本地库中所存储的文件版本
查看日志信息中可以看到分支切换操作操作
![](https://i-blog.csdnimg.cn/direct/0086c4ae00864df08b5c945e34865d31.png)
合并冲突
先分别修改两个分支中同一个文件的内容并提交到对应本地库
![](https://i-blog.csdnimg.cn/direct/dc84e27d4cdb423ab21462fdf7f33cfa.png)
![](https://i-blog.csdnimg.cn/direct/d217a938353d436e834ce2e605dbd2d7.png)
切换到master分支后尝试合并
由于两个分支++同时存在对于同一个文件的修改++ ,导致文件有两处地方不同,无法处理哪个保留,哪个删除
Automatic merge failed
说明了自动合并操作失败,由于修改冲突
master|MERGING
就是表示合并的操作正在进行,没有完成
通过vim
进入到文件,直接进行修改,在有HEAD
和hot-fix
提示之内进行删除,调整至想要修改的状态
最后要将原本文件提供的提示信息给删掉
然后提交到暂存区,再提交到本地库【不需要带文件名】
![](https://i-blog.csdnimg.cn/direct/9bb4b2422bef4d79b110ef022bdd8a71.png)
团队协作
团队内需要身份权限 避免黑客入侵
团队内
![](https://i-blog.csdnimg.cn/direct/1755cc55ed2a427d88c4011a61f7f816.png)
clone:相当于本地本来每代码
pull:将修改的代码对比原本的代码进行修改
跨团队
![](https://i-blog.csdnimg.cn/direct/e2bc240b2aa54a849234372ec0ec34ee.png)
fork:分叉
Pull request:请求拉取
merge:合并
远程仓库--Github
在GitHub中创建一个仓库
![](https://i-blog.csdnimg.cn/direct/be9ddad345c14427a9201034b86e206c.png)
![](https://i-blog.csdnimg.cn/direct/31d0ba4c7f4c4e52bfed6d75308fe0b5.png)
![](https://i-blog.csdnimg.cn/direct/31519cf49d7e480591b3bac60e38e050.png)
在所在本地仓库的git版本控制工具bash中起别名
![](https://i-blog.csdnimg.cn/direct/bf982b0ea59d4c028eb29f170b8b23cb.png)
命令 作用 git remote -v 查看当前所有远程地址名 git remote add 别名 远程地址 将创建远程仓库给本地git进行识别并起别名 fetch抓取和push推送都是用同一个别名地址
推送本地库到远程库
git push 别名/地址 本地库分支
需要进行登录,授权,一般登录了选第一个选项
若有网络差的,需要尝试多几次
![](https://i-blog.csdnimg.cn/direct/f429984db31342bd8e113e688a625b53.png)
![](https://i-blog.csdnimg.cn/direct/943b441e00a74dbfae90a45ff38da409.png)
拉取远程库到本地库
git pull 别名/地址 本地库分支
![](https://i-blog.csdnimg.cn/direct/8d24b063895e46e28e75199deae74549.png)
克隆远程库到本地
git clone 地址
实现以下三个操作
- 拉取代码
- 初始化本地仓库
- 创建默认别名
origin
--一般是这个名字
![](https://i-blog.csdnimg.cn/direct/07170184353e4291bbd148d3bb307ac0.png)
团队内协作
push需要团队成员权限 手动进行添加,包括请求某人进入团队和某人响应进入团队的请求
跨团队协作
需要创建分叉到自己的库中,后面再进行拉取请求
SSH免密登录
ssh -keygen -t rsa -C 邮箱地址
--自动生成一个.ssh的文件夹,里面有公钥和私钥
![](https://i-blog.csdnimg.cn/direct/08e72e9ffeb04886ba6b2c1083056730.png)
查询公钥后填到GitHub中去,实现免密进行推送和拉取代码
下面的画面,代表公钥保存成功了,操作成功
![](https://i-blog.csdnimg.cn/direct/093f0bcf9a674af897cda62e35b4afd9.png)