git分支管理

分支管理:

一、创建分支

为了便于理解,先在master分支上做两个增量提交版本,操作如下:

1、手动新增一个new01.py文件,内容为print('new01')

2、使用 git add *  git commit -m “第一次提交” 进行提交

3、手动新增一个new02.py文件,内容为print('new02')

4、使用 git add *  git commit -m “第二次提交”  进行提交

二、新分支上提交并切换到master分支

1、对new02.py文件进行修改,内容为print('devnew02')

2、使用 git add *  git commit -m dev分支第一次提交” 进行提交

3、使用 git log --pretty=oneline 查看git日志

4、使用命令 git checkout master 切换回master分支,此时会发现new02.py的修改已经没了,因为已经切换到master分支

三、把dev分支合并到master分支

1、使用命令git merge dev dev分支上的内容合并到分支mastergit merge命令用于合并指定分支到当前分支,Fast-forward表明这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。

2当分支合并后,可以通过命令git branch -d dev 删除dev分支

四、分支合并时的冲突

1、使用命令 git checkout -b dev 创建并切换到分支dev

2、对new02.py文件进行修改,添加一行内容为print('dev')并提交到版本库

3、使用命令 git checkout master 

4、对new02.py文件进行修改,添加一行内容为print('master')并提交到版本库

       上面这种情况,git无法执行"快速合并",只能试图把各自的修改合并起来,但这种合并就可能会有冲突。

       冲突原因:master分支和dev分支各自都分别有新的提交,并且编辑了同一个文件。

1、使用命令 git checkout -b dev 创建并切换到分支dev

2、对new02.py文件进行修改,添加一行内容为print('dev')并提交到版本库

3、使用命令 git checkout master 

4、对new02.py文件进行修改,添加一行内容为print('master')并提交到版本库

       上面这种情况,git无法执行"快速合并",只能试图把各自的修改合并起来,但这种合并就可能会有冲突。

       冲突原因:master分支和dev分支各自都分别有新的提交,并且编辑了同一个文件。

dd删除不要的

Fast Forward意为"快进模式"。主要使用在多分支合并的情况下。即:当前分支合并另一个分支的时候,如果合并的过程中没有冲突的时候,则会通过直接移动两个分支的指针,来达到合并的过程,这个过程就叫做Fast Forward

       Fast Forward模式下,当我们合并分支后,将会删除无用的分支dev,在这种情况下,Fast Forward就有一个弊端暴露了,即:删除分支后,会丢掉分支的所有信息。

        在合并dev分支的时候,通过命令 git merge --no-ff -m “禁用Fast Forward模式提交” dev 可以强制禁用Fast Forward模式提交,然后再使用命令 git log --graph --pretty==oneline --abbrev-commit 查看日志即可看到分支信息

Fast Forward模式合并:

禁用Fast Forward模式合并保留分支信息

创建dev02分支在new02.py新增print(‘dev02’)

git merge --no-ff -m “禁用Fast Forward模式提交”dev

git merge --no-ff -m “禁用Fastdev02

it log --graph --pretty=oneline --abbrev-commit 查看日志即可看到分支信息

git branch -d 删除分支

 

回忆滋润坚持
原文地址:https://www.cnblogs.com/james5d/p/14095118.html