第3章 Git分支
1、分支基本概念
1)创建分支
分支1
↓
快照0 <-- 快照1 <-- 快照2 <-- 快照3
↑
master
↑
HEAD
2)分别提交一次之后的分支。
分支1
↓
快照4
↓
快照0 <-- 快照1 <-- 快照2 <-- 快照3
↑
快照5
↑
master
↑
HEAD
分支像个二叉树一样,创建分支后开始分叉。
git branch #查看当前分支状态
git branch 分支名 #创建一个分支
git checkout 分支名 #切换分支
git chechout -b 分支名 #创建一个分支并且切换到这个分支
git branch -d 分支名 #删除一个分支
git branch --merged #查看已经与当前合并的分支
git branch --no-gmerged #查看尚未与当前合并的分支
git branch -r #查看远程分支
git branch -d -r 远程库名/分支名#删除一个远程库分支(本地的远程库分支)
合并分支组合操作
git checkout master #切换到master分支
git merge 111 #在master分支之上合并111分支,即把111分支合并到当前分支中。
git merge 远程库别名/远程分支名 #在本地master分支上合并远程库分支
两种合并方式:
1、快进:两个分支在同一条路径上
2、找到相同的祖先,祖先+两个分支 3方自动选择合并:两个分支在不同路径上
理想情况下,合并分支是不发生冲突的,也就是两个分支不会对同一个文件的同一个位置进行改变,一旦合并发生冲突,需要手动处理,此时git不会自动选择合并。
合并冲突的处理方式:
手动 vi 冲突 文件
<<<<<<<<<<<HEAD ============= >>>>>>>>>>>>>>
解决冲突后,查看
git status 会有提示。
需要
git add .
分支切换注意点:
当前分支中,如果有尚未提交到仓库的数据,是不可切换分支的。
git stash #保存当前状态
git stash list #查看状态列表
git stash apply 保存点名字 #取出状态
远程分支:
远程分支用 [远程库名/分支名] 的形式来表示
删除远程库中的分支
git push 远程库名 :分支名