随着需求的增多,为了多人协作的顺利进行,需要进行分支开发,进而带来分支管理问题。今天主要讲一下如何管理分支及提交。

为了使git更好用,下面是我的git配置文件(放在C:\Users\Administrator目录下的.gitconfig文件)。

[user]
email = xxx
name = xxx
[gui]
encoding = UTF-8
[core]
autocrlf = false
[color]
ui = auto
[branch]
autosetuprebase = always
[alias]
st = status
ci = commit
co = checkout
br = branch
rb = reset --hard ORIG_HEAD
unstage = reset HEAD
lg = log --graph --oneline --decorate
last = log --graph --oneline --decorate origin/master..HEAD
[diff]
external = ~/meld.sh

这样就可以简化命令了,比如 git status 可以简化为 git st ,另外,git lg 查看log的时候格式也更加好看了,并且 git diff 查看文件改动对比更加明了。

要想使用git diff,还需要一点点配置:

下载meld,配置git如下:

$ git config --global diff.external ~/meld.sh

编写 meld.sh 包装脚本:

$ vim ~/meld.sh

内容如下:

#!/bin/sh
meld $ $

写了这么多无关话题,现在说正题。

在进行分支提交管理的时候使用最多的2条命令是rebase -i和cherry-pick。

rebase -i 用来合并多个commit为1个,cherry-pick用来拾取commit。现在举例说明。

首先示例rebase -i来合并多个commit。

1、查看当前分支提交记录

2、在当前分支新建test分支

3、在test分支提交3次

4、现在要把test分支的3个提交合并到dev,不推荐使用merge,因为会使log分支,推荐使用rebase来合并,所有的log都在一条线上。所以现在切回dev,然后git rebase test即可。

5、此时如果想把第二三四个提交合并为1个,就rebase -i到第一个提交。

运行以下命令:

git rebase -i add92ec

此时弹出:

根据命令提示,把下面2个pick改为s后wq保存退出:

此时弹出提交汇总,可直接保存退出:

此时rebase -i成功:

可以看到第二三四个提交都合并为第二个提交。

详细提交记录:

所以rebase -i主要是为了保持主分支的整洁性。

cherry-pick来拾取,比如,我们可以把test分支的第三个提交取到dev分支来,不需要第二和第四个提交。

1、首先dev分支回到第一个提交:

2、查看test分支第三个提交的版本号

3、回到dev分支来拾取test分支的第三个提交

运气不好,发生了冲突,所以失败了,那就解决冲突后继续:

git st查看,得知冲突文件,解决冲突后continue。

现在test分支的第三个提交就到dev分支来了。

两个git进阶命令,很实用的哦,你学会了么,嘿嘿嘿。

git分支提交管理的更多相关文章

  1. Git分支高级管理[四]

    标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 切换分支 git checkout 撤销对文件的修改 git checkout -- ...

  2. Git 分支代码管理日记备注

    1〉  Bithucket 创建代码库 2〉  下载克隆代码 Git clone 代码链接 3〉  代码初始化完成之后,切换到代码文件夹 cd 文件夹名 4〉  查看分支情况 Git brach 5〉 ...

  3. Git分支的管理

    (一)查看分支 1.查看本地分支:git branch 2.查看远程分支:git branch -r 3.查看所有分支:git branch -a (二)创建分支 1.创建本地分支:git branc ...

  4. Git分支管理及常见操作

    众所周知,使用Git分支,我们可以从开发主线上分离开来,然后在不影响主线的同时继续工作. 既然要使用Git分支,这里就涉及到Git分支的管理及常见操作,如列出分支,分支的创建,分支的删除,分支的合并等 ...

  5. 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...

  6. GIT分支管理模型

    GIT分支管理模型 link: git-branching-model 主分支(Main branches) 项目两个常驻分支: master 主干分支(锁定),仅用于发布新版本,平时不能在上面干活, ...

  7. Git 分支管理是一门艺术

    转载: Git 分支管理是一门艺术 1 要确保:团队成员从主分支(master)获得的都是处于可发布状态的代码,而从开发分支(develop)应该总能够获得最新开发进展的代码. 2 "辅助分 ...

  8. GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮 ...

  9. Git 分支管理详解

    大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 Cen ...

随机推荐

  1. for、while循环(java基础知识四)

    1.循环结构概述和for语句的格式及其使用 * 什么是循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把 ...

  2. js判断字符串是否包含某个字符串

    String对象的方法 1,indexOf() (推荐) 方法可返回某个指定的字符串值在字符串中首次出现的位置.如果要检索的字符串值没有出现,则该方法返回 -1 var str = "123 ...

  3. linux初级学习笔记九:linux I/O管理,重定向及管道!(视频序号:04_3)

    本节学习的命令:tr,tee,wc 本节学习的技能: 计算机的组成 I/O管理及重定向     管道的使用 知识点九:管理及IO重定向(4_3) 计算机组成: 运算器.控制器: CPU 存储器:RAM ...

  4. Java变量和常量声明

    一.变量     1.变量的定义           变量是内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),Java中每个变量必须先声明,后使用 该区域的数据可以在同一类型范围内 ...

  5. codeforces 696B B. Puzzles(树形dp+概率)

    题目链接: B. Puzzles time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  6. 【字符串】BZOJ上面几个AC自动机求最为字串出现次数的题目

    (一下只供自己复习用,目的是对比这几个题,所以写得不详细.需要细节的可以参考其他博主) [BZOJ3172:单词] 题目: 某人读论文,一篇论文是由许多(N)单词组成.但他发现一个单词会在论文中出现很 ...

  7. 杂项-公司:Aspose

    ylbtech-杂项-公司:Aspose Aspose 于2002年3月在澳大利亚悉尼创建,旗下产品覆盖文档.图表.PDF.条码.OCR.CAD.HTML.电子邮件等各个文档管理领域,为全球.NET ...

  8. bzoj1038&&500AC!

    序列dp 先开始想了一个类似区间dp的东西...少了一维 然后发现似乎不太对,因为女生的最大差和男生的最大差并不相等 dp[i][j][x][y]表示当前有i个人,j个男生,男生和女生的后缀最大差是x ...

  9. 【旧文章搬运】ZwQuerySystemInformation枚举进线程信息

    原文发表于百度空间,2008-10-15========================================================================== 很古老的东 ...

  10. CodeForces 622C

    题意: 给你一个数组,m个询问,l,r,x;让你输出在区间[ l , r ]上哪个位置不等于x. 思路: 额..我这个思路还是剽来的...不过真心赞啊. 开个p数组,直接记录数组每个元素的位置,并且实 ...