3. 分支管理
1. 创建分支
git checkout -b dev ##创建并切换到dev分支
git branch ##查看当前分支状况
* dev
master
上面一条命令相当于以下两条命令
git branch dev ##创建分支
git checkout dev ##切换分支
2. 切换分支
git checkout master
3. 合并分支
git merge dev ##将dev分支合并到当前分支上
4. 删除分支
git branch -d dev
5. 分支合并冲突
git checkout -b feature1 ##创建新分支
###修改readme.txt内容
git add readme.txt ##提交
git commit -m "AND simple"
git checkout master ##切换到master分支
###修改readme.txt内容
git add readme.txt ##提交
git commit -m "& simple"
git merge feature1 ##试图合并分支
###合并冲突,无法快速合并分支
###手动修改文件内容
###再次合并
git merge feature1
6. 禁用fast forward合并分支
git merge --no-ff -m "merge with no-ff" dev
7. 储藏暂存区
###当前在dev分支下工作,并添加了文件到暂存区,还没有提交
###但是现在需要完成其他分支任务
git stash ##储藏当前分支的暂存区
git stash list ##查看储藏区里都有哪些任务
git stash apply ##恢复储藏区内的任务
git stash drop ##删除stash内的内容
git stash pop ##恢复储藏区内的任务并删除stash内的内容
git stash apply stash{0} ##指定恢复储藏区内的任务
8. 强行删除新分支
###当前新分支feature已经开发完毕,但是没有合并
###普通删除分支不能删除
git branch -D feature ##强行删除该分支
9. 多人协作
(1)查看远程库信息
git remote -v
(2)从本地推送分支
git push origin branch-name
(3)如果推送失败,要先抓取远程的新提交
git pull
(4)git pull提示no tracking information
说明本地分支和远程分支的链接关系没有创建
git branch --set-upstream-to <branch-name> origin/<branch-name>
(5)在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
10. rebase
rebase操作可以把本地未push的分叉提交历史整理成直线;
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
git rebase