原创 git合并分支流程

原创  git  merge  合并分支 

git 合并分支

情景:

现有两个分支:

master 主分支,已经上线

dev 开发分支


因为master分支有一些上线的配置,所以需要将master合并到dev上

然后测试无误后,再将dev分支合并回master


详情如下:

# 查看分支信息

$ git branch

* dev

  master

# 切换到master

$ git checkout master

# 查看标签信息

$ git tag -l 

v1.0

# 添加版本提交记录

$ git add tag_info.txt

$ git commit -m 'add tag for version'

$ git push origin master

# 添加标签

$ git tag -a v1.1 -m "version yyyy.mm.dd"

# 推送标签

$ git push origin master v1.1

# 查看标签信息

$ git tag  

v1.0

v1.1

# 截止到当前步骤,已经将master做了commit备份和tag备份


# 先拉取

$ git pull

# 切换到dev分支

$ git checkout dev

# 将master分支合并到dev分支上

$ git merge master

# 如果

Auto-merging cons/urls.py

Auto-merging Project_test/settings.py

CONFLICT (content): Merge conflict in Project_test/settings.py

Automatic merge failed; fix conflicts and then commit the result.

# 不要慌,先执行下STATUS,看下情况

$ git status

On branch dev

Your branch is up to date with 'origin/dev'.


You have unmerged paths.

  (fix conflicts and run "git commit")

  (use "git merge --abort" to abort the merge)


Changes to be committed:


        modified:   cons/urls.py

modified:   cons/views.py

        ...


Unmerged paths:

  (use "git add <file>..." to mark resolution)


        both modified:   Project_test/settings.py

# 重点来了,绿色的忽略,红色的最后一句,both modified ,意思是两个分支这个文件都修改,git也不知道要用哪个分支上的了

# 所以合并失败,也给你了提示


# 打开该文件,找到一堆<<<的地方如下:

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.mysql',

        'NAME': 'my_db',

        'USER': 'root',

<<<<<<< HEAD

        'PASSWORD': '123456',

        'HOST': '192.168.1.1',

        'PORT': '3306',

=======

        'PASSWORD': '123456_Server',

        #'HOST': 'localhost',

        'HOST': '192.168.16.25',

        'PORT': '3307',

>>>>>>> master

    }

}

# 看这个错误是什么意思

<<<<<<< HEAD   # 此行表示当前分支开始

======= 在此行之前HEAD之后的内容表示当前分支修改的代码

>>>>>>> master 在此行之前 === 之后的内容表示master分支修改的代码

# 这个看懂之后就明白了,原来是master分支上的数据配置和dev分支的数据库配置冲突了

# 将此处处理好之后,添加

$ git add Project_test/settings.py

$ git add .

# 提交合并信息

$ git commit -m 'fix merge conflict'

# 推送

$ git push origin dev


# 截至到当前步骤,已经将master 分支内容合并到dev分支上了

# 下一步需要将dev的代码合并会master分支(前提是已经测试通过)

$ git checkout master

Switched to branch 'master'

Your branch is up to date with 'origin/master'.

# 拉取一下

$ git pull

# 开始合并至master

$ git merge dev

# 如果足够幸运,你不会出现冲突,如果你十分幸运,又出现了冲突,参照上方冲突的解决方式

# 然后看一下状态

$ git status

On branch master

Your branch is ahead of 'origin/master' by 4 commits.

  (use "git push" to publish your local commits)


nothing to commit, working tree clean


# 然后别忘了最后一步,将合并过来的代码推送的远程!!!

$ git push origin master 


# 至此合并分支的流程结束


作者:草根菜 创建日期:2020-04-15 17:55:49 浏览量:5700