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的默认分支名是master,在多次提交之后,你其实已经有一个执行最后那个提交对象的master分支。master分支会在每次提交时自动向前移动。而且Git 的master分支并不是一个特殊的分支。它就跟其他分支完全没有区别,之所以几乎每个仓库都有master分支,是因为 git? ?init命令默认创建它,并且大多数人都懒得取改动它。

1.git的分支操作

? ? ? ? 1.1? 分支创建

????????????????创建一个名称为branch_name的分支

? ? ? ? ? ? ? ? git? ? ?branch? ?branch_name?

? ? ? ? ? ? ? ? 查看各个分支当前所指向的对象 --decorate

? ? ? ? ? ? ? ? git? ?log? ?--oneline --decorate??

? ? ? ? ? ? ? ? 创建完成后我们执行上面一条命令发现,branch_name 和 master分支都指向了相同校验和的提交对象。

????????1.2? 分支切换

? ? ? ? ? ? ? ? 要切换到一个已经存在的分支,使用git? checkout 命令。

? ? ? ? ? ? ? ? git? ?checkout? ?branch_name //切换到了branch_name分支,这样HEAD就指向了branch_name 分支了。

? ? ? ? ? ? ? ? 在切换分支之后,如果修改并提交了文件,那么分支的HEAD就会向前移动,而master分支并没有,依然指向git? ?checkout时所指向的对象。当我们再次切回master的时候,git? checkout? master 这条命令做了两件事,其一是HEAD指回了master分支,二是将工作目录恢复成master分支所指向的快照内容。也就是说,刚刚切到分支上所做的修改,在master分支上不会体现。因为Git的分支实质上仅仅是包含所指对象校验和的文件(长度为40的SHA-1值字符串),所以它的创建和销毁都异常搞笑。创建一个新分支就相当于往一个文件中写入41个字节(40个字符和1个换行符),所以这两步过程并没有什么日志输出,但是确实已经恢复到了切换之前的状态。

? ? ? ? 现在这个项目的提交历史已经产生了分叉,因为刚刚新建了一个分支,并切换过去做了一些工作,我们可以在不同分支间来回切换和工作,并在时机成熟的时候将他们合并起来。

? ? ? ? 1.3? 分支的合并

? ? ? ? ? ? ? ? 创建分支并切换到新建分支可以使用:? git? ? branch? ?-b? ?new_branch

? ? ? ?它相当于 git? ?branch? ?new_branch? ??

????????git? ?checkout? new_branch

? ? ? ? 假如下面一个场景,我想在项目添加一个功能,但是不知道能不能实现。此时可以新建一个分支,并在分支上进行开发测试,等到测试通过了,合并新建分支到master分支。可以进行如下操作:

? ? ? ? 1.3.1.git? ? branch? ?-b? ? ?new_branch?

? ? ? ? 1.3.2.在new_branch 上进行开发,测试通过后提交? git? ?add? ...? ?git? ?commit ...

·? ? ? ?1.3.3.合并new_branch到master:

? ? ? ? ? ? ? ? 首先切换到master分支:

? ? ? ? ? ? ? ? git? ? checkout? ?master

? ? ? ? ? ? ? ? 合并分支

? ? ? ? ? ? ? ? git? ?merge? ?new_branch

? ? ? ? ?1.3.4.此时如果有冲突,git会给出提示,这就需要我们手动合并冲突,然后再进行

·? ? ? ? ? ? ? ? git? ? add? ...git? ?commit ..

? ? ? ? ?1.3.5.如果一个分支完成了它的使命,可以使用下面的命令删除

? ? ? ? ? ? ? ? git? ? branch -d? new_branch

????????1.4? ?拉取服务器的分支

? ? ? ? ? ? ? ? 对于已经存在的分支,在拉取了服务器代码[git? clone <url>]之后,我们使用git? ?branch -a 就可以看到所有的分支了,如果需要在某一个分支上进行操作,只需要直接切换过去即可: [git? ?checkout? ?branch_name ]? ? ?然后就可以重复前面的操作了。

? ? ? ? 1.5 创建自己的分支并提交到服务器端:

? ? ? ? ? ? ? ? 创建分支: git? ?branch? ?branch_name(仅仅创建) 或者使用? ?git? checkout -b branch_name(创建并切换到该分支)。

? ? ? ? ? ? ? ? 推送分支到远程:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? git? ? push? ?--set-upstream origin? branch_name (branch_name是分支名)

? ? ? ? ? ? ? ? 创建分支仅仅是在本地创建了一个分支,并没有服务器端与之对应,需要使用上面的命令进行提交。

? ? ? ? ? 1.6 删除一个远程的分支

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?git? ?push? ?--delete origin branch_name (branch_name是分支名)

?git push origin --delete [branch_name]

  开发工具 最新文章
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-10-17 12:55:18  更:2022-10-17 12:57:03 
 
开发: 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年11日历 -2024/11/25 21:24:18-

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