GIT学习----第十三节:分支管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38082783/article/details/84645250

学习目的

  1. 区分‘–no-ff普通模式合并’和‘fast forward模式合并’的区别?

fast forward模式合并

  1. 分支合并之前查看分支历史
$ git log --graph --pretty=oneline
* 2fc181e173242bd21edad0ad0336f1a0ab0af3e7 (HEAD -> dev) add merge
*   14f2011cde83c68cea09d9843b0332fd9a2de052 (tag: v1.0.0) 解决冲突提交
|\
| * e3b6465fec0b0e626465b3a8608d44e6f6a26d82 测试分支冲突1的提交
* | 31fe6069a4abec6c36d1b080b3d33ee909703c54 测试分支冲突master提交
|/
* c2799ed0de7ba38bfaf813e886bffebd8e6ef6cf 提交分支git-study测试
* c8e9e508b22c94e9a15c9493d27017e8040cc2b0 (origin/master) 本地仓库命令总结 及 远程仓库创建学习
* 61500cbb98ea0c92d14d458bf687bbfc4f93793e git仓库
  1. 查看dev分支状态
$ git status
On branch dev
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")
  1. 提交dev分支修改文件
$ git add readme.txt

$ git commit -m "fast forward模式测试"
[dev 8f4b73f] fast forward模式测试
 1 file changed, 2 insertions(+)
  1. 切换到master分支
$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 6 commits.
  (use "git push" to publish your local commits)
  1. fast forward模式合并分支dev
$ git merge -m "fast forward合并" dev
Merge made by the 'recursive' strategy.
 readme.txt | 2 ++
 1 file changed, 2 insertions(+)
  1. 删除分支dev
$ git branch -d dev
Deleted branch dev (was 8f4b73f).
  1. 使用fast forward模式合并之后查看分支历史
$ git log --graph --pretty=oneline
*   3d1696f7237c130cf5a1ad9773ffbee51be3262a (HEAD -> master) fast forward合并
|\
| * 8f4b73fed335e05837bf0f9d2f37129fa4b70670 fast forward模式测试
* |   4557c42347c9e5349977281a525d107542380c6d merge width no-ff
|\ \
| |/
| * 2fc181e173242bd21edad0ad0336f1a0ab0af3e7 add merge
|/
*   14f2011cde83c68cea09d9843b0332fd9a2de052 (tag: v1.0.0) 解决冲突提交
|\
| * e3b6465fec0b0e626465b3a8608d44e6f6a26d82 测试分支冲突1的提交
* | 31fe6069a4abec6c36d1b080b3d33ee909703c54 测试分支冲突master提交
|/
* c2799ed0de7ba38bfaf813e886bffebd8e6ef6cf 提交分支git-study测试
* c8e9e508b22c94e9a15c9493d27017e8040cc2b0 (origin/master) 本地仓库命令总结 及 远程仓库创建学习
* 61500cbb98ea0c92d14d458bf687bbfc4f93793e git仓库
* 7ef25b5b91bd8010def470f54acd074d9bfaeeac 提交GIT学习的markdown文档资料
* 2b66c80c0c48eb14c0d8207775e5d109beb715af 彻底删除test.txt
* 196e901032be6a5d8861796ccfe382ca58c6d4fc 新建测试文件
* a22f5040574758a503a6147f9a4f450bca05a55f 测试撤销修改提交
* ffb306aed8ede0dfe770421cefb8011f5bba3ed1 (tag: v0.0.9) 再次测试git diff提交测试
* 8519ea54c233319819c90718e4f31af573632ba0 git diff 测试提交
* 5cc8766c378c412c3f6f476c57987aadc344f426 测试管理修改提交
:

–no-ff模式合并

  1. 分支合并之前查看分支历史
$ git log --graph --pretty=oneline
*   3d1696f7237c130cf5a1ad9773ffbee51be3262a (HEAD -> master) fast forward合并
|\
| * 8f4b73fed335e05837bf0f9d2f37129fa4b70670 fast forward模式测试
* |   4557c42347c9e5349977281a525d107542380c6d merge width no-ff
|\ \
| |/
| * 2fc181e173242bd21edad0ad0336f1a0ab0af3e7 add merge
|/
*   14f2011cde83c68cea09d9843b0332fd9a2de052 (tag: v1.0.0) 解决冲突提交
|\
| * e3b6465fec0b0e626465b3a8608d44e6f6a26d82 测试分支冲突1的提交
* | 31fe6069a4abec6c36d1b080b3d33ee909703c54 测试分支冲突master提交
|/
* c2799ed0de7ba38bfaf813e886bffebd8e6ef6cf 提交分支git-study测试
* c8e9e508b22c94e9a15c9493d27017e8040cc2b0 (origin/master) 本地仓库命令总结 及 远程仓库创建学习
* 61500cbb98ea0c92d14d458bf687bbfc4f93793e git仓库
* 7ef25b5b91bd8010def470f54acd074d9bfaeeac 提交GIT学习的markdown文档资料
* 2b66c80c0c48eb14c0d8207775e5d109beb715af 彻底删除test.txt
* 196e901032be6a5d8861796ccfe382ca58c6d4fc 新建测试文件
* a22f5040574758a503a6147f9a4f450bca05a55f 测试撤销修改提交
* ffb306aed8ede0dfe770421cefb8011f5bba3ed1 (tag: v0.0.9) 再次测试git diff提交测试
* 8519ea54c233319819c90718e4f31af573632ba0 git diff 测试提交
* 5cc8766c378c412c3f6f476c57987aadc344f426 测试管理修改提交
:
  1. 创建并切换分支noff
$ git checkout -b noff
Switched to a new branch 'noff'
  1. 查看noff文件修改后状态
$ git status
On branch noff
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")
  1. 提交noff分支修改文件
$ git add readme.txt

$ git commit -m "--no-ff模式测试"
[noff 93ecb83] --no-ff模式测试
 1 file changed, 2 insertions(+)
  1. 切换到master分支
$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 8 commits.
  (use "git push" to publish your local commits)
  1. 用–no-ff模式合并noff分支
$ git merge --no-ff -m "--no-ff模式合并" noff
Merge made by the 'recursive' strategy.
 readme.txt | 2 ++
 1 file changed, 2 insertions(+)
  1. 删除noff分支
$ git branch -d noff
Deleted branch noff (was 93ecb83).
  1. 分支–no-ff模式合并之后查看历史
$ git log --graph --pretty=oneline
*   118be5d78c46cf4ddc2512b5e8f0f2730b96d456 (HEAD -> master) --no-ff模式合并
|\
| * 93ecb8398c082ef26a0d405cae7e74cbf3dc0644 --no-ff模式测试
|/
*   3d1696f7237c130cf5a1ad9773ffbee51be3262a fast forward合并
|\
| * 8f4b73fed335e05837bf0f9d2f37129fa4b70670 fast forward模式测试
* |   4557c42347c9e5349977281a525d107542380c6d merge width no-ff
|\ \
| |/
| * 2fc181e173242bd21edad0ad0336f1a0ab0af3e7 add merge
|/
*   14f2011cde83c68cea09d9843b0332fd9a2de052 (tag: v1.0.0) 解决冲突提交
|\
| * e3b6465fec0b0e626465b3a8608d44e6f6a26d82 测试分支冲突1的提交
* | 31fe6069a4abec6c36d1b080b3d33ee909703c54 测试分支冲突master提交
|/
* c2799ed0de7ba38bfaf813e886bffebd8e6ef6cf 提交分支git-study测试
* c8e9e508b22c94e9a15c9493d27017e8040cc2b0 (origin/master) 本地仓库命令总结 及 远程仓库创建学习
* 61500cbb98ea0c92d14d458bf687bbfc4f93793e git仓库

总结

  1. master分支是主要版本分支,必须保持master的稳定;
  2. 多人合作是都是对dev分支再创建自己的分支,修改自己的分支,在dev合并,最后再合并到稳定版本的master分支;
  3. –no-ff模式合并会保留分支历史信息,fast forward模式合并会丢失分支历史信息(在分支删除后),本人这里可能是操作失误,导致都留下了。不清楚的请看廖雪峰大神的分支管理策略
  4. 合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。(廖大神的该章小结)
  5. 不管是我的操作失误还是什么,总之采用–no-ff模式能够留下分支合并的信息,这样有利于后期我们查询。

其他

QQ交流群: 264303060

QQ交流群

我的博客,欢迎交流!

我的CSDN博客,欢迎交流!

微信小程序专栏

前端笔记专栏

微信小程序实现部分高德地图功能的DEMO下载

微信小程序实现MUI的部分效果的DEMO下载

微信小程序实现MUI的GIT项目地址

微信小程序实例列表

前端笔记列表

游戏列表

猜你喜欢

转载自blog.csdn.net/m0_38082783/article/details/84645250