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
演示以下
八:多人協做。
當你從遠程庫克隆時候,實際上Git自動把本地的master分支和遠程的master分支對應起來了,而且遠程庫的默認名稱是origin。
以下演示:
一:推送分支:
推送分支就是把該分支上全部本地提交到遠程庫中,推送時,要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上:
使用命令 git push origin master
好比我如今的github上的readme.txt代碼以下:
本地的readme.txt代碼以下:
如今我想把本地更新的readme.txt代碼推送到遠程庫中,使用命令以下:
咱們能夠看到如上,推送成功,咱們能夠繼續來截圖github上的readme.txt內容 以下:
能夠看到 推送成功了,若是咱們如今要推送到其餘分支,好比dev分支上,咱們仍是那個命令 git push origin dev
那麼通常狀況下,那些分支要推送呢?
二:抓取分支:
多人協做時,你們都會往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到遠程庫裏面去。以下所示:
所以:多人協做工做模式通常是這樣的: