zoukankan      html  css  js  c++  java
  • git操作详解(二)分支管理

    分支管理

    一、创建分支 

    重新创建一个仓库git_lvhuayan_2

     

     

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

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

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

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

     

    5、通过命令 git branch 查看当前分支情况

     

    6、通过命令 git branch dev 创建一个dev的新分支

     

    7、通过命令 git checkout dev 切换到dev分支

     

    备注:步骤2、3可以通过命令git checkout -b dev 完成相同操作

    二、新分支上提交并切换到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分支上的内容合并到分支master,git 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分支各自都分别有新的提交,并且编辑了同一个文件。

     

     5、冲突解决:同时打开new02.py文件,<<<<<HEAD 下面表示主分支做的修改,=======表示分割线,>>>>>>dev上面表示dev分支做的修改,对new02.py文件进行编辑,把<<<<<HEAD、=======>>>>dev去掉,并由自己选择需要保存的内容,使用git add*、git commit-m“冲突解决”提交到版本库

     

     

     

    5、forward模式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模式: 

     

     

  • 相关阅读:
    maven-scm-plugin: Add a tag into Mercurial. 在Mercurial中添加一个tag
    JSch
    docker-compose install
    如何删除Dead状态的container
    inux下如何添加一个用户并且让用户获得root权限
    Log4j2 自定义 Appender
    Harbor私有镜像仓库(上)
    docker基础(下)
    docker基础(上)
    Pipeline流水线JAVA项目发布
  • 原文地址:https://www.cnblogs.com/lvhuayan/p/14525567.html
Copyright © 2011-2022 走看看