问题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