zoukankan      html  css  js  c++  java
  • 7、Gitee的分支操作

    分支的理解

    我们先说一个简单的案例,团队开发一个项目时,A同事想要增加一个新的功能,假设需要一周完成,但是A同时写了其中的30%,先提交到了主分支,其他人就无法提交自己改的,因为其他人提交上去的话,就被覆盖了,所以需要等到A同事写完才能提交上去,但是大家又看不到他的进度,也不能继续干活,这怎么办呢?

    需要就出现了分支管理的办法,A同事需要新增功能的话,就创建一个属于他的分支,比如dev,A同事只需要在dev分支上干活就好了,也不会影响到master主分支,那么所有人都可以正常工作。

    分支合并

    创建分支

    假设自己的A同事,现在需要增加功能,那么就创建一个dev分支,并将代码上传到dev分支上。

    如下图所示,我们创建了dev分支,但是HEAD指针还是指向了master主分支

     git checkout命令加上-b参数表示创建并切换分支上。

    git checkout -b dev

    切换分支

    要通过dev分支提交并pull,所以需要切换到dev分支上

    git checkout dev
    git branch -a # 查看所有分支情况

     git branch -a命令可以查看所有分支,现在我们HEAD指针便指向dev分支,大家可以在上图中看到dev分支上有个*号。

    合并分支

    1、创建一个temp.txt文件,通过master提交并push到远程仓库

     

    2、切换到dev分支,修改temp.txt内容并提交

    • 该项目有一个测试文件 temp.txt,我们修改它的内容,并通过dev分支提交一下。

    vim temp.txt
    cat temp.txt
    git add temp.txt
    git commit -m "dev commit"

     

    3、切换回master分支,查看temp.txt文件是否有修改

    git checkout master
    cat temp.txt

     大家可以看到我们刚才增加的一行内容不见了,嘿嘿。因为那个提交是在dev分支上,而master分支没有变化。好了,下面我们来演示一下合并分支。

     

    4、合并分支(快速合并)

    • 现在,我们把dev分支的工作成果合并到master分支上,如下图:

     

    大家注意到上面的 Fast-forward 信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度 非常快。当然,也不是每次合并都能Fast-forward,我们后面会将其他方式的合并。合并完成后,就可以放心地删除dev分支了

    分支删除

    下面我们来演示一下删除分支,如下图:

    git branch -d dev    # 删除dev分支
    git branch -a # 查看所有分支

    小结

    大家在实际操作中可以发现在我们创建、合并、删除分支的速度非常快吧,这和直接在master分支上工作效果是一样的,但过程更安全,更可靠。下面我们来简单的总结一下:

    • 查看分支 git branch -a

    • 创建分支 git branch name

    • 切换分支 git checkout name

    • 创建并切换 git checkout -b name

    • 合并某分支到当前分支 git merge name

    • 删除分支 git branch -d name

    分支合并冲突

    1)下面我们来演示一下不同分支修改同一个文件产生冲突问题,下面我们来创建一个新的分支,继续开发新功能:

    git checkout -b new1
    vim temp.txt
    cat temp.txt
    git add temp.txt
    git commit -m "new1 修改"

     2)现在我们将分支切换到master分支上修改temp.txt内容并提交,如下图:

    git checkout master
    vim temp.txt
    cat temp.txt
    git add temp.txt
    git commit -m "master 修改"

    3、快速合并及解决冲突

    这种情况下,Git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,如下图:

    • 并且后面的分支显示变成了 (master|MERGING)

     果然冲突了,Git告诉我们temp.txt文件存在冲突,必须手动解决冲突后再提交。下面我们用git status查看一下状态:

     我们发现temp.txt的内容,合并了new1分支和master主分支修改过的信息

    所以这个时候就需要团队的人员进行商讨,要保留谁的

    • 保留了new1分支的内容,并重新提交了

    好了,到这我们的分支合并冲突就讲解完成了,下面我们来删除分支。

    最后,我们可以用 git log --graph --pretty=oneline --abbrev-commit 命令,查看一下分支合并。如下图:

    分支提交

    (1)新建分支

    git branch xxx (xxx填写你的分支名称)

    (2)查看所有分支

    git branch -a

    (3)切换到某一分支

    git checkout xxx (xxx填写要切换的分支名称)

    (4)添加修改代码到缓存(注意最后的"."前面有个空格

    git add .

    (5)添加提交代码的备注

    git commit -m "xxx" (xxx为本次提交代码的备注)

    (6)提交代码到指定分支

    git push origin xxx (xxx为要提交代码的分支名称)

    测试结果

     

    具体分支讲解,请参考博客

     

    致力于记录学习过程中的笔记,希望大家有所帮助(*^▽^*)!
  • 相关阅读:
    python 中文文档地址总结
    清除celery 任务队列
    celery work logging 问题
    mysql 数据库 存储数据类型
    python 补0的方法
    lunix 命令积累
    python3 import Crypto 失败的解决办法 (AES对称加密使用 模块)
    从excel 获取内容 模块:xlrd
    api h5 sdk 接入的说明
    Excel 打开两个单独的页面
  • 原文地址:https://www.cnblogs.com/zxhbk/p/13034535.html
Copyright © 2011-2022 走看看