【轉】Git使用教程之BUG分支

1.bug分支git

     在開發中,會常常碰到bug問題,那麼有了bug就須要修復,在Git中,分支是很強大的,每一個bug均可以經過一個臨時分支來修復,修復完成後,合併分支,而後將臨時的分支刪除掉。github

好比我在開發中接到一個404 bug時候,咱們能夠建立一個404分支來修復它,可是,當前的dev分支上的工做尚未提交。好比以下:app

 

   並非我不想提交,而是工做進行到一半時候,咱們還沒法提交,好比我這個分支bug要2天完成,可是我issue-404 bug須要5個小時內完成。怎麼辦呢?還好,Git還提供了一個stash功能,能夠把當前工做現場 」隱藏起來」,等之後恢復現場後繼續工做。以下:3d

  

   因此如今我能夠經過建立issue-404分支來修復bug了。blog

首先咱們要肯定在那個分支上修復bug,好比我如今是在主分支master上來修復的,如今我要在master分支上建立一個臨時分支,演示以下:開發

 

修復完成後,切換到master分支上,並完成合並,最後刪除issue-404分支。演示以下:rem

如今,咱們回到dev分支上幹活了。同步

工做區是乾淨的,那麼咱們工做現場去哪裏呢?咱們可使用命令 git stash list來查看下。以下:it

工做現場還在,Git把stash內容存在某個地方了,可是須要恢復一下,可使用以下2個方法:ast

  1. git stash apply恢復,恢復後,stash內容並不刪除,你須要使用命令git stash drop來刪除。
  2. 另外一種方式是使用git stash pop,恢復的同時把stash內容也刪除了。

         演示以下

八:多人協做。

當你從遠程庫克隆時候,實際上Git自動把本地的master分支和遠程的master分支對應起來了,而且遠程庫的默認名稱是origin。

  1. 要查看遠程庫的信息 使用 git remote
  2. 要查看遠程庫的詳細信息 使用 git remote –v

以下演示:

 

一:推送分支:

      推送分支就是把該分支上全部本地提交到遠程庫中,推送時,要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上:

      使用命令 git push origin master

好比我如今的github上的readme.txt代碼以下:

本地的readme.txt代碼以下:

 

如今我想把本地更新的readme.txt代碼推送到遠程庫中,使用命令以下:

咱們能夠看到如上,推送成功,咱們能夠繼續來截圖github上的readme.txt內容 以下:

能夠看到 推送成功了,若是咱們如今要推送到其餘分支,好比dev分支上,咱們仍是那個命令 git push origin dev

那麼通常狀況下,那些分支要推送呢?

  1. master分支是主分支,所以要時刻與遠程同步。
  2. 一些修復bug分支不須要推送到遠程去,能夠先合併到主分支上,而後把主分支master推送到遠程去。

二:抓取分支:

多人協做時,你們都會往master分支上推送各自的修改。如今咱們能夠模擬另一個同事,能夠在另外一臺電腦上(注意要把SSH key添加到github上)或者同一臺電腦上另一個目錄克隆,新建一個目錄名字叫testgit2

可是我首先要把dev分支也要推送到遠程去,以下

接着進入testgit2目錄,進行克隆遠程的庫到本地來,以下:

 

如今目錄下生成有以下所示:

如今咱們的小夥伴要在dev分支上作開發,就必須把遠程的origin的dev分支到本地來,因而可使用命令建立本地dev分支:git checkout  –b dev origin/dev

如今小夥伴們就能夠在dev分支上作開發了,開發完成後把dev分支推送到遠程庫時。

以下:

小夥伴們已經向origin/dev分支上推送了提交,而我在個人目錄文件下也對一樣的文件同個地方做了修改,也試圖推送到遠程庫時,以下:

由上面可知:推送失敗,由於個人小夥伴最新提交的和我試圖推送的有衝突,解決的辦法也很簡單,上面已經提示咱們,先用git pull把最新的提交從origin/dev抓下來,而後在本地合併,解決衝突,再推送。

git pull也失敗了,緣由是沒有指定本地dev分支與遠程origin/dev分支的連接,根據提示,設置dev和origin/dev的連接:以下:

這回git pull成功,可是合併有衝突,須要手動解決,解決的方法和分支管理中的 解決衝突徹底同樣。解決後,提交,再push:

咱們能夠先來看看readme.txt內容了。

如今手動已經解決完了,我接在須要再提交,再push到遠程庫裏面去。以下所示:

所以:多人協做工做模式通常是這樣的:

    1. 首先,能夠試圖用git push origin branch-name推送本身的修改.
    2. 若是推送失敗,則由於遠程分支比你的本地更新早,須要先用git pull試圖合併。
    3. 若是合併有衝突,則須要解決衝突,並在本地提交。再用git push origin branch-name推送。
相關文章
相關標籤/搜索