git的分支管理

之前學習了git管理個人倉庫及傳送遠程倉庫和獲取遠程倉庫,下面就開始探索git的強大功能------分支管理

    在版本回退和時光機裏,我們知道了master分支是一條線,還有一個指針HEAD來指向當前分支

    在實際工作中,master分支也就是主分支,記錄着最終的開發版本,如果多人協作開發,就需要每個人創建自己的分支dev,在各自分支上開發完之後,再與master分支合併即可。

    1.創建dev分支,然後切換到dev分支   git checkout -b dev   相當於兩條命令(1) git branch dev   (2) git checkout dev 

    2.用git branch 查看分支狀態,前面帶*號的爲當前HEAD指向的分支

    3.在分支dev裏修改後,提交  git add readme.txt      git commit -m "branch"    現在dev分支的工作完成

    4.切換回master分支  git checkout master

    5. 最後把dev分支的成果合併到master分支  git merge dev    默認採用fast-forward方式,這種快合併方式在log裏看不到合併的跡象,可以用 --no-ff方式

    6.可以查看合併log  git  log --graph  之後再刪除分支dev就好了, git branch -d dev  強行刪除某條分支的話  git branch -D dev

 

  如果出現版本衝突怎麼辦?

 也就是dev上對某個文件進行了修改,master上對文件也進行了修改,現在你要把dev上的結果合併到master分支上,git就會懵逼了,我到底選擇哪次的修改

解決衝突其實很簡單 

      1. git status 查看是哪個文件衝突了

      2.cat readme.txt查看文件中哪裏衝突了,git會用<<<<<<<=======>>>>>>>標記出不同分支的內容

      3. 再提交就ok啦!git add readme.txt      git commit -m "conflict fix"

 

  如果你正在自己的dev分支上開發某個功能,突然老闆讓你解決一個bug,但你正開發到一半,不能提交,怎麼辦?

其實很簡單

     1.在自己的dev分支上,git stash 保存當前工作現場

      2.切換到master分支上,創建bug分支,解決完之後,合併到master分支

      3.然後回到自己的dev分支,git checkout dev   再  git stash list 會發現當時保存的現場

      4.git stash pop 恢復的同時把stash內容給刪了(也可以先 git stash stash apply  再git stash drop)

      5.之後再運行 git stash list 會發現沒有保存的現場了


  git remote 查看遠程庫的信息

  git remote -v 查看遠程庫的詳細信息,包括遠程庫的地址

  git push origin master 推送master 分支到遠程庫

  git push origin dev 推送dev 分支到遠程庫

  如果你向origin/dev推送的時候,別的小夥伴已經向origin/dev推送過了怎麼辦?

其實很簡單,和解決衝突類似

  1. git pull 獲取到最新的提交

  2. 本地解決衝突,和上面提到的版本衝突類似

  3.再上傳到遠程庫


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章