zoukankan      html  css  js  c++  java
  • 使用git新建分支以及管理分支

        在进行分支相关的操作前, 我们需要保持主分支干净, 所谓的干净就是没有任何改变(所有更改都已经commit 并 push),那么你可以在任何时候从你的主分支创建一个新分支。

    为了方便代码管理,我们应该始终保持主干分支干净,为了其他新增需求或差异版本去创建相应分支。 如果主干分支上有问题要修改,我们最好不要在主干分支上直接修改,而是为了修改这个问题

    专门去创建一个分支,当问题修改测试完成稳定后,把这个分支合入到主干分支,完了可以删除掉这个分支(当然,根据实际情况也可以保留)。然后主干上的这个修改就可以通过合并,同步到其他的分支上去。

    查看分支:

    查看所有已存在的分支,你可以使用: git branch

    例如:未拉分支之前,我们查看只有一个主分支master,前面带*号的代表当前所在的分支

    新建分支:

    在本地电脑新建一个分支: git branch <新分支名字>

    将新分支发布在github上: git push origin <新分支名字> 

    创建成功后查看:可见多了一个分支b1,目前位于master分支

     

    切换分支:

    切换到目标分支: git checkout <分支名字> 

    下图可见用命令已经切换到新建的b1分支上面

     

    删除分支:

    注意:不能删除当前所在分支,要删除某个分支,必须先切换到其他分支上

    在本地删除一个分支: git branch -d <本地分支>

    在github远程端删除一个分支: git push origin :<远程端分支>

    在b1分支删除b1分支:(error)

     在master分支删除b1分支:(ok)

    合并分支:

    命令如下: git merge  <分支名字> 

    注意:该命令是将  <分支名字> 的改动合并到你当前所在分支,

    【1】如果当前所在分支是master,那么合并到master之后,master分支需要进行push操作

    1.切换到master分支

    2. 将b1分支合并到master分支

     3.可见master分支有变动,需要提交来更新到远程服务器

    4. 提交master合并后的更新到远程服务器

    5. 查看ok!!

    【2】如果当前所在分支不是master,那么合并到当前分支之后,当前分支的本地和远程就都是合并后的最新状态,不需要进行push操作

    1.切换到b1分支

     2.将master合并到b1

     3. 查看ok!!

    查看分支之间的不同:
            $ git diff branchName   查看当前分支与branchName分支之间的差异,也可以使用:$ git diff branch1 branch2 来比较这1和2分支之间的差异,当使用第一种方式比较时,如果当前工作目录中存在与branchName同名的文件,系统则会提示错误,要是指明要比较的是文件还是分支,如果比较分支,可以进入.git中进行比较或切换分支,如果是>比较文件,则使用$ git diff -- fileName命令。
            $ git diff <branchA>:<fileA> <branchB>:<fileB>
            $ git ls-tree -r branch 列出所有的树对象

    合并冲突:
        如果在不同的分支中都修改了同一个文件的同一部分,Git 就无法干净地把两者合到一起(译注:逻辑上说,这种问题只能由人来裁决。)
        任何包含未解决冲突的文件都会以未合并(unmerged)的状态列出。Git 会在有冲突的文件里加入标准的冲突解决标记,可以通过它们来手工定位并解决这些冲突。
        在解决了所有文件里的所有冲突后,运行 git add 将把它们标记为已解决状态(译注:实际上就是来一次快照保存到暂存区域。)。因为一旦暂存,就表示冲突已经解决。如
    果你想用一个有图形界面的工具来解决这些问题,不妨运行 git mergetool,它会调用一个可视化的合并工具并引导你解决所有冲突。
        要从该清单中筛选出你已经(或尚未)与当前分支合并的分支,可以用 --merge 和 --no-merged 选项(Git 1.5.6 以上版本)。比如用 git branch --merge 查看哪些分支>已被并入当前分支(译注:也就是说哪些分支是当前分支的直接上游。)

  • 相关阅读:
    树莓派ZeroW的Python中使用SQLite数据库
    树莓派Python读写配置文件--configparser库
    信号量示例——“生产者——消费者”实验
    互斥锁示例——模拟银行卡取钱
    管道通信(上)
    命名管道——进程通信案例
    文件I/O
    链表习题
    蓝桥杯ACM训练Day4——算法2-8~2-11:链表的基本操作
    C++——类模板几种常见的情况
  • 原文地址:https://www.cnblogs.com/ppneo/p/5993197.html
Copyright © 2011-2022 走看看