zoukankan      html  css  js  c++  java
  • Git如何进行分支管理?

     Git如何进行分支管理?
         1、创建分支
         创建分支很简单:git branch <分支名>
         2、切换分支
         git checkout <分支名>
         该语句和上一个语句可以和起来用一个语句表示:git checkout -b <分支名>
         3、分支合并
         比如,如果要将开发中的分支(develop),合并到稳定分支(master),
         首先切换的master分支:git checkout master。
         然后执行合并操作:git merge develop。
         如果有冲突,会提示你,调用git status查看冲突文件。
         解决冲突,然后调用git add或git rm将解决后的文件暂存。
         所有冲突解决后,git commit 提交更改。
         4、分支衍合
         分支衍合和分支合并的差别在于,分支衍合不会保留合并的日志,不留痕迹,而 分支合并则会保留合并的日志。
         要将开发中的分支(develop),衍合到稳定分支(master)。
         首先切换的master分支:git checkout master。
         然后执行衍和操作:git rebase develop。
         如果有冲突,会提示你,调用git status查看冲突文件。
         解决冲突,然后调用git add或git rm将解决后的文件暂存。
         所有冲突解决后,git rebase --continue 提交更改。
         5、删除分支
         执行git branch -d <分支名>
         如果该分支没有合并到主分支会报错,可以用以下命令强制删除git branch -D <分支名>

    • 合并某个分支上的单个commit

    首先,用git log或GitX工具查看一下你想选择哪些commits进行合并,例如:

    dd2e86 - 946992 -9143a9 - a6fd86 - 5a6057 [master]

              

                76cada - 62ecb3 - b886a0 [feature]

    比如,feature 分支上的commit 62ecb3 非常重要,它含有一个bug的修改,或其他人想访问的内容。无论什么原因,你现在只需要将62ecb3 合并到master,而不合并feature上的其他commits,所以我们用git cherry-pick命令来做:

    [plain] view plain copy
    1. git checkout master  
    2. git cherry-pick 62ecb3  

    这样就好啦。现在62ecb3 就被合并到master分支,并在master中添加了commit(作为一个新的commit)。cherry-pick merge比较类似,如果git不能合并代码改动(比如遇到合并冲突),git需要你自己来解决冲突并手动添加commit。

    • 合并某个分支上的一系列commits

    在一些特性情况下,合并单个commit并不够,你需要合并一系列相连的commits。这种情况下就不要选择cherry-pick了,rebase 更适合。还以上例为例,假设你需要合并feature分支的commit76cada ~62ecb3 到master分支。

    首先需要基于feature创建一个新的分支,并指明新分支的最后一个commit:

    [plain] view plain copy
    1. git checkout -bnewbranch 62ecb3  

    然后,rebase这个新分支的commit到master(--ontomaster)。76cada^ 指明你想从哪个特定的commit开始。

    [plain] view plain copy
    1. git rebase --ontomaster 76cada^  
    得到的结果就是feature分支的commit 76cada ~62ecb3 都被合并到了master分支。
  • 相关阅读:
    静态化之优化
    SEO小技巧
    apache 工具和简单优化
    apache rewrite机制
    nginx php win平台配置
    mvc 简单模型
    php无限分类三种方式
    【转】sqlserver查询数据库中有多少个表
    【转】sqlserver数据库之间的表的复制
    SET ANSI_NULLS (TransactSQL)
  • 原文地址:https://www.cnblogs.com/wxmdevelop/p/8064197.html
Copyright © 2011-2022 走看看