分支操作
什么是分支操作:
- 分支就是方便多人同时协作工作。
- 分支就是每个人获取原有代码,在此基础之上创建自己的工作环境。 单独开发,不会影响其他分支的操作,开发完成后再同意合并到主线分支中。
- 创建分支的好处: 安全,不影响其他人工作,可以自己控制进度。
查看当前分支:git branch
guosihan@guosihandeMacBook-Pro project % git branch
* master
说明: 前面有 * 号的分支表示当前正在工作的分支
**创建新的分支: ** git branch name
guosihan@guosihandeMacBook-Pro project % git branch
* master
guosihan@guosihandeMacBook-Pro project % git branch dev_Tom
guosihan@guosihandeMacBook-Pro project % git branch
dev_Tom
* master
guosihan@guosihandeMacBook-Pro project % git branch dev_Jerry
guosihan@guosihandeMacBook-Pro project % git branch
dev_Jerry
dev_Tom
* master
guosihan@guosihandeMacBook-Pro project %
如何切换的某个分支:
guosihan@guosihandeMacBook-Pro project % git checkout dev_Tom
Switched to branch 'dev_Tom'
guosihan@guosihandeMacBook-Pro project % git branch
dev_Jerry
* dev_Tom
master
guosihan@guosihandeMacBook-Pro project %
创建工作分支: git checkout dev_Tom
切换之前一定要创建这个分支
此时我在分支dev_Jerry中创建了Tom.doc 但是如果我们回到主分支master时看不到Tom.doc
现在想在dev_Tom下面创建并切换到新的分支,集合了两步的功能:
guosihan@guosihandeMacBook-Pro project % git branch
dev_Jerry
* dev_Tom
master
guosihan@guosihandeMacBook-Pro project % git checkout -b dev_Tom_1
Switched to a new branch 'dev_Tom_1'
guosihan@guosihandeMacBook-Pro project % git branch
dev_Jerry
dev_Tom
* dev_Tom_1
master
guosihan@guosihandeMacBook-Pro project %
这个操作是将分支dev_Tom_1合并到dev_Tom中:
guosihan@guosihandeMacBook-Pro project % git checkout dev_Tom
M Readme.txt
Switched to branch 'dev_Tom'
guosihan@guosihandeMacBook-Pro project % ls
Readme.txt hello.py
guosihan@guosihandeMacBook-Pro project % git merge dev_Tom_1
Already up to date.
guosihan@guosihandeMacBook-Pro project %
将dev_Tom合并到master中:
guosihan@guosihandeMacBook-Pro project % git merge dev_Tom
Updating ac8c629..c6e2c59
Fast-forward
hello.py | 1 +
1 file changed, 1 insertion(+)
create mode 100644 hello.py
guosihan@guosihandeMacBook-Pro project %
- 合并过程中如果没有冲突则直接合并后当前分支即为干净的状态
- 如果产生冲突则需要人为的选择 然后再进行add commit操作
- 在创建分支前 尽量保证当前分支是干净的 减少冲突的发生
最后删除分支:
guosihan@guosihandeMacBook-Pro project % git branch -d dev_Tom_1
Deleted branch dev_Tom_1 (was c6e2c59).
guosihan@guosihandeMacBook-Pro project %
但是如果此分支还未合并到主分支时,则用大D删除:
guosihan@guosihandeMacBook-Pro project % git branch -d dev_Jerry
error: The branch 'dev_Jerry' is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev_Jerry'.
guosihan@guosihandeMacBook-Pro project %
所以:
guosihan@guosihandeMacBook-Pro project % git branch -D dev_Jerry
Deleted branch dev_Jerry (was 4e7c85a).
guosihan@guosihandeMacBook-Pro project %
以上是分支的基本操作。