IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git分支管理 -> 正文阅读

[开发工具]Git分支管理

分支管理

创捷和合并分支

自己创建属于自己的分支,别人看不到,继续在原来的分支上正常工作,而自己在自己的分支上干活,想提交就提交,等到开发完毕后,再一次性合并到原来的分支上,这样既安全,又不影响比别人工作。

Git的分支无论是创建、切换还是删除,都能在一秒内完成,十分高效。

创建并切换分支

git checkout dev  //创建名为dev的分支
git checkout dev  //切换到dev分支

git checkout -b dev  //创建并切换到dev分支,作用同上面两条

查看当前分支

git branch  //默认为master即main分支

在这里插入图片描述

查看所有分支

git branch -a

查看远程分支

git branch -r

在这里插入图片描述

切回master分支

git checkout master

dev分支的工作结果合并到master分支上

git merge dev

删除dev分支

git branch -d dev

switch命令也可操作分支

git switch -c dev  //创建并切换到新的分支dev

git switch master  //切换分支为master

解决冲突

当其main分支和其他分支都有了各自新的提交时,这种情况下Git无法合并,因为可能发生冲突:

在这里插入图片描述

合并时会产生冲突提示:

在这里插入图片描述

产生冲突的文件内容里也会有一些提示:

在这里插入图片描述

更改文件内容消除分支后再提交,此时冲突被消除:

在这里插入图片描述

使用git log可以查看分支的合并情况:

git log --graph  //查看分支合并图
git log --graph --pretty=oneline  //简写内容
git log --graph --pretty=oneline --abbrev-commit  //简写提交

在这里插入图片描述

最后可以删除分支了

git branch -d branch1

在这里插入图片描述

分支管理策略

通常,合并分支时默认为Fast forward模式,但这种模式在删除分支后会丢失分支信息。在强制禁用该模式时,Git会在合并时生成一个新的commit,即存了一份当前分支状态,这样,从历史中就能找到分支信息。

合并分支时强制禁用Fast forward模式:

git merge --no-ff -m "xxx" dev

禁用ff后的分支状态:

在这里插入图片描述

main分支应该是最稳定的,仅用来发布新版本,平时不会直接在该分支上面干活。所有每个人都应该在自己独有的分支上干活,有成果时再合并到main分支上去。因为团队合作下的分支结构应该如此:

在这里插入图片描述

Bug分支

当主分支上出现紧急bug需要修复,但你正在操作的分支上又有任务还在进行需要暂存工作现场时,使用:

git stash

存储当前工作现场后即可切到其他分支干活了,完事后,恢复刚刚的工作现场:

git stash list  //显示工作现场的列表

git stash apply  //恢复工作现场
git stash drop  //删除存储的工作现场

git stash pop  //恢复工作现场并删除该存储

git stash apply stash@{1}  //恢复到指定的stash

复制某个特定的提交到当前分支:

git cherry-pick xxxxx  //只变更某个commit id的commit

强制删除某个分支

git branch -D dev

多人协作

查看远程库的信息:

git remote
git remote -v  //显示更详细的信息

在这里插入图片描述

推送分支,即提交本地的某分支到远程库对应的远程分支上:

git push origin dev

其他人克隆远程库

git clone https://github.com/username/xxx.git

默认情况下其他人只能看到本地的main分支,如果需要在dev分支上开发就需要在本地创建远程origindev分支,本地创建该分支后即可push

当你试图在某分支上进行推送时,但你的提交与其他人的已提交产生了冲突,则会导致推送失败。那么你需要先git pull将远程的最新提交的抓下来,然后在本地合并,等解决了冲突后再进行推送。

若无法git pull,则需要指定本地分支与远程分支的链接:

git branch --set-upsteam-to=origin/dev dev
git rebase

可以将本地未push的分叉提交整理为直线。目的是使得我们再查看历史提交时变化时更更容易,因为分叉的提交需要三方对比。

git merge与git rebase参考:

https://blog.csdn.net/michaelshare/article/details/79108233

内容参考-https://www.liaoxuefeng.com/wiki/896043488029600

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:19:38  更:2022-04-15 00:23:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 3:02:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码