git分支提交管理

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

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

[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 查看文件改动对比更加明了。ui

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

    下载meld,配置git以下:3d

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

    编写 meld.sh 包装脚本:code

$ vim ~/meld.sh

    内容以下:blog

#!/bin/sh
meld $2 $5

     写了这么多无关话题,如今说正题。ci

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

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

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

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

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

    三、在test分支提交3次

     四、如今要把test分支的3个提交合并到dev,不推荐使用merge,由于会使log分支,推荐使用rebase来合并,全部的log都在一条线上。因此如今切回dev,而后git rebase test便可。

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

    运行如下命令:

git rebase -i add92ec

     此时弹出:

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

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

    此时rebase -i成功:

    能够看到第二三四个提交都合并为第二个提交。

    详细提交记录:

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

    cherry-pick来拾取,好比,咱们能够把test分支的第三个提交取到dev分支来,不须要第二和第四个提交。

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

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

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

    运气很差,发生了冲突,因此失败了,那就解决冲突后继续:

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

    如今test分支的第三个提交就到dev分支来了。

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

相关文章
相关标签/搜索