問題git
在使用git
時,假如遠程倉庫有 dev
和 master
兩個分支,master
做爲一個穩定版分支,可用於直接發佈產品,平常的開發則 push
到 dev
分支,那本地是否是要從 dev
分支中建立一個本地分支,而後在這個分支的 push
的動做是默認推到遠程 dev
分支上?github
解惑服務器
1、遠程倉庫有master
和dev
分支code
1.克隆代碼開發
git clone git@github.com:XX/master-dev.git #這個git路徑是無效的,示例而已
2. 查看全部分支get
git branch --all # 默認有了dev和master分支,因此會看到以下三個分支 # master[本地主分支] origin/master[遠程主分支] origin/dev[遠程開發分支] # 新克隆下來的代碼默認master和origin/master是關聯的,也就是他們的代碼保持同步 # 可是origin/dev分支在本地沒有任何的關聯,因此咱們沒法在那裏開發
3. 建立本地關聯origin/dev
的分支同步
git checkout dev origin/dev # 建立本地分支dev,而且和遠程origin/dev分支關聯,本地dev分支的初始代碼和遠程的dev分支代碼同樣
4. 切換到dev分支進行開發產品
git checkout dev # 這個是切換到dev分支,而後就是常規的開發
更多it
2、假設遠程倉庫只有mater
分支ast
1. 克隆代碼
git clone https://github.com/master-dev.git # 這個git路徑是無效的,示例而已
2. 查看全部分支
git branch --all # 默認只有master分支,因此會看到以下兩個分支 # master[本地主分支] origin/master[遠程主分支] # 新克隆下來的代碼默認master和origin/master是關聯的,也就是他們的代碼保持同步
3. 建立本地新的dev分支
git branch dev # 建立本地分支 git branch # 查看分支 # 這是會看到master和dev,並且master上會有一個星號 # 這個時候dev是一個本地分支,遠程倉庫不知道它的存在 # 本地分支能夠不一樣步到遠程倉庫,咱們能夠在dev開發,而後merge到master,使用master同步代碼,固然也能夠同步
4. 發佈dev
分支
發佈dev分支指的是同步dev分支的代碼到遠程服務器
git push origin dev:dev # 這樣遠程倉庫也有一個dev分支了
5. 在dev
分支開發代碼
git checkout dev # 切換到dev分支進行開發 # 開發代碼以後,咱們有兩個選擇 # 第一個:若是功能開發完成了,能夠合併主分支 git checkout master # 切換到主分支 git merge dev # 把dev分支的更改和master合併 git push # 提交主分支代碼遠程 git checkout dev # 切換到dev遠程分支 git push # 提交dev分支到遠程 # 第二個:若是功能沒有完成,能夠直接推送 git push # 提交到dev遠程分支 # 注意:在分支切換以前最好先commit所有的改變,除非你真的知道本身在作什麼
6. 刪除分支
git push origin :dev # 刪除遠程dev分支,危險命令哦 # 下面兩條是刪除本地分支 git checkout master # 切換到master分支 git branch -d dev # 刪除本地dev分支
7. 推薦書籍 progit.pdf
書籍格式和語言:中文、英文、PDF、ePub
下載地址:http://git-scm.com/book
中文版地址:https://git-scm.com/book/zh/v2