分支概述
分支是什么
有人可能认为,所谓的“开分支”,就是把文件先复制到另外的目录,然后进行改动,之后再合并,把文件与原本的文件比对之后放回原来的目录……其实,Git不是这样做的
分支像贴纸一样
可以把分支想象成一张贴纸,贴在某一个Commit上面
当做了一次新的Commit之后,这个新的Commit会指向它的前一个Commit
而接下来“当前的分支”,也就是HEAD所指的这个分支,会贴到刚刚做的那个Commit 上,同时HEAD也会跟着前进
分支命令
查看分支
git branch
-r : 列出所有远程分支
-a :列出所有本地分支和远程分支
切换分支
git checkout dog
切换后,主要是更新暂存区和工作目录,变更HEAD的位置
创建分支
git branch cat
通过某分支创建分支
git checkout -b 新分支 某分支
新分支会继承某分支数据
修改分支名
git branch -m cat dog
合并分支
git merge dog
删除本地仓库分支
git branch -d dog (未合并不能删)
git branch -D dog (强制删)
删除远程仓库分支
git push 远程仓库名 -d 分支名
还原分支(删除的是还未合并的分支)
原理:分支只是一个指向某个Commit的指标,删除这个指标并不会使那些Commit消失
1记得删除分支时的commit贴纸
Deleted branch cat(was b2323b)
2重新创建分支用原来commit贴纸,以达到还原效果
git branch new_cat b2323b