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進階命令,很實用的哦,你學會了麼,嘿嘿嘿。

相關文章
相關標籤/搜索