-==》分支的并行开发 和 合并========》
查看分支 git branch 重要
创建分支 git branch 分支名 重要
切换分支 git checkout 分支名 重要
合并分支 git merge 分支名 重要
把指定的分支合并到当前分支
# 查看当前分支
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ git branch
* dev
dev01
master
====》分支并行开发结合图去看
#从dev上切换到dev01上
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ git checkout dev01
Switched to branch 'dev01'
# dev01 创建一个 QueryAll文件 并 添加提交
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev01)
$ touch QueryAll.java
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev01)
$ git add .
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev01)
$ git commit -m 'dev01 完成了查询所有的功能 为我点赞吧'
[dev01 cf53bc1] dev01 完成了查询所有的功能 为我点赞吧
1 file changed, 1 insertion(+)
create mode 100644 QueryAll.java
# 检查提交点
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev01)
$ git-log
* cf53bc1 (HEAD -> dev01) dev01 完成了查询所有的功能 为我点赞吧
* 02b8021 (dev) dev 颁布了开发手册
* dc02f9b (master) master 主分支 发布了 开发任务 readme.md
# 从dev01切换到dev上
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev01)
$ git checkout dev
Switched to branch 'dev'
# 查看
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ ls
dev.shouce readme.md
# dev创建 zhaopin.txt文件 并完成添加提交操作
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ touch zhaopin.txt
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ git add .
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ git commit -m 'dev 发布了招聘文档'
[dev 14af704] dev 发布了招聘文档
1 file changed, 1 insertion(+)
create mode 100644 zhaopin.txt
# 查看提交日志信息
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ git-log
* 14af704 (HEAD -> dev) dev 发布了招聘文档
| * cf53bc1 (dev01) dev01 完成了查询所有的功能 为我点赞吧
|/
* 02b8021 dev 颁布了开发手册
* dc02f9b (master) master 主分支 发布了 开发任务 readme.md
# 切换到master分支上
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ git checkout master
Switched to branch 'master'
# master分支 创建zhaopin.txt文件并 提交 注意 其里面第一行与dev内容不一样
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (master)
$ touch zhaopin.txt
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (master)
$ git add .
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (master)
$ git commit -m 'master 发布招聘信息'
[master ee14029] master 发布招聘信息
1 file changed, 1 insertion(+)
create mode 100644 zhaopin.txt
# 查看 这三个分支的提交点位
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (master)
$ git-log
* ee14029 (HEAD -> master) master 发布招聘信息
| * 14af704 (dev) dev 发布了招聘文档
| | * cf53bc1 (dev01) dev01 完成了查询所有的功能 为我点赞吧
| |/
| * 02b8021 dev 颁布了开发手册
|/
* dc02f9b master 主分支 发布了 开发任务 readme.md
=================分支之间的合并=====》
# 切换到 dev上 用来合并dev01
Yoyo-ba@yoyoba MINGW4 /e/402/gitbranch (master)
$ git checkout dev
Switched to branch 'dev'
# dev 合并了 dev01
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ git merge dev01 -m 'dev 收了dev01 代码'
Merge made by the 'recursive' strategy.
QueryAll.java | 1 +
1 file changed, 1 insertion(+)
create mode 100644 QueryAll.java
# 没有冲突 一切ok
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ ls
dev.shouce QueryAll.java readme.md zhaopin.txt
# 查看提交日志 看到了合并的操作
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ git-log
* b134de2 (HEAD -> dev) dev 收了dev01 代码
|\
| * cf53bc1 (dev01) dev01 完成了查询所有的功能 为我点赞吧
* | 14af704 dev 发布了招聘文档
|/
* 02b8021 dev 颁布了开发手册
| * ee14029 (master) master 发布招聘信息
|/
* dc02f9b master 主分支 发布了 开发任务 readme.md
# 切换的master分支 准备合并掉dev分支
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (dev)
$ git checkout master
Switched to branch 'master'
# master合并 dev分支 一个文件出现了冲突 同名同位置有不同内容即为冲突
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (master)
$ git merge dev -m 'master 要收了dev '
CONFLICT (add/add): Merge conflict in zhaopin.txt
Auto-merging zhaopin.txt
Automatic merge failed; fix conflicts and then commit the result.
打开文件
git 把你两个冲突体现出来了
<<<<<<< HEAD 当前master分支里面的内容
招聘 一个项目经理 两个程序员
======= 下面是 合并过来里面的内容
zhaoping 2 ge 3years old cxy
>>>>>>> dev
作为发动合并的人 你有 决定权 要留谁的代码
你已经修改了 这个 冲突文件 这个文件在 工作区
必须 先添加到暂存区 再提交!!!才能完成合并!!!!
$ git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)
Changes to be committed:
new file: QueryAll.java
new file: dev.shouce
Unmerged paths:
(use "git add <file>..." to mark resolution)
both added: zhaopin.txt
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (master|MERGING)
$ git add .
Yoyo-ba@yoyoba MINGW64 /e/402/gitbranch (master|MERGING)
$ git commit -m 'mater 收了dev 并且处理好了其中冲突'
[master ab05d95] mater 收了dev 并且处理好了其中冲突