Git建立branch 与 解决分支冲突

因为以前写一个Spring项目的时候是本身和一位大佬一块儿协做的,在中间差点由于个人git命令不熟悉而致使个人本地分支错误合并。这里仔细写一下git建立分支时候的一些坑和解决分支冲突时候的一些方法。
先写一下一些比较经常使用的命令git

版本回退命令指针

git reset --hard 版本号

版本回退后后悔了怎么办?
code

git reflog

查看将来的版本号
而后blog

git reset --hard 版本号

想要让git log --graph看到的东西更好看
不妨使用图片

git rebase branch

你会有一些惊喜的发现
下面进入正文开发

建立分支

咱们可使用get

git checkout -b dev

建立一个名为dev的分支, 并将HEAD指针指向dev分支博客

这须要加入一个-b参数团队协作

它的效果等同于it

git branch dev

git checkout dev

而分支的意义在于当使用git来进行团队协做的时候,咱们须要各自独立实现本身的所负责的功能,可是很显然咱们不能够把全部工做都放到master分支中,这就是咱们的建立分支的必要,每一个人将本身建立的分支中进行分支合并到master主分支。

咱们使用

git merge branch

合并分支,

接着咱们能够放心的删除dev分支了,咱们使用

git branch -d dev

删除dev分支

解决分支冲突

当master的版本高于分支的版本的时候这个时候合并分支

git merge branch_name

会产生分支冲突。

  1. 这个时候能够先使用git的自动智能合并
git pull
  1. 若是提示失败,那么这个时候能够本身手动解决分支冲突(就是本身按照git在文件中的提示删除master分支或者本身建立的分支的内容),而后再将这个改动提交
    咱们可使用带参数的一个log命令看到中间的一个过程
git log --graph

个人实验过程是这样的
在这里插入图片描述

分支管理策略

一般合并分支是,Git会使用Fast Forword模式,可是这个模式在删除这个分支后就会丢掉这个分支信息。因此若是强制禁用Fast Forword模式,git就会在merge的时候生成一个新的commit
咱们使用

git merge --no-ff -m "logs here" branch_name

这个咱们这个分支合并动做就会做为一次commit从而记录在master了.

分支策略

在实际开发中,咱们应该按照几个基本原则进行分支管理:

首先,master分支应该是很是稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,好比1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每一个人都在dev分支上干活,每一个人都有本身的分支,时不时地往dev分支上合并就能够了。

因此,团队合做的分支看起来就像这样:

到这里差很少把平时踩过的坑都写了一遍
参考资料:廖雪峰的博客

相关文章
相关标签/搜索