关于分支
git 2017-06-13 10:19:04

开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支

PHP Code复制内容到剪贴板
  1. git checkout dev  
  2. git pull  
  3. git checkout master  
  4. git merge dev  
  5. git push -u origin master  

 

二、当master代码改动了,需要更新开发分支(dev)上的代码

PHP Code复制内容到剪贴板
  1. git checkout master   
  2. git pull   
  3. git checkout dev  
  4. git merge master   
  5. git push -u origin dev  

 

 

 

查看所有远程分支 

PHP Code复制内容到剪贴板
  1. git branch -r  

 

直接拉取指定分支cnooc

PHP Code复制内容到剪贴板
  1. git clone -b cnooc 地址  

 

git冲突

PHP Code复制内容到剪贴板
  1. git reset HEAD 冲突的文件   
  2. git checkout  .  
  3. git pull origin 分支名  

 

创建本地分支(2.0.1.20120806是分支名称,可以随便定义)

PHP Code复制内容到剪贴板
  1. git branch 2.0.1.20120806  

 

切换本地分支

PHP Code复制内容到剪贴板
  1. git checkout 2.0.1.20120806  

 

远程分支就是本地分支push到服务器上。比如master就是一个最典型的远程分支(默认)。

PHP Code复制内容到剪贴板
  1. git push origin 2.0.1.20120806  

 

远程分支和本地分支需要区分好,所以,在从服务器上拉取特定分支的时候,需要指定远程分支的名字。

PHP Code复制内容到剪贴板
  1. git checkout --track origin/2.0.1.20120806  

注意该命令由于带有--track参数,所以要求git1.6.4以上!这样git会自动切换到分支。

 

提交分支数据到远程服务器

PHP Code复制内容到剪贴板
  1. git push origin <local_branch_name>:<remote_branch_name>  


例如:

PHP Code复制内容到剪贴板
  1. git push origin 2.0.1.20120806:2.0.1.20120806  

一般当前如果不在该分支时,使用这种方式提交。如果当前在 2.0.1.20120806 分支下,也可以直接提交
git push

 

删除远程分支

PHP Code复制内容到剪贴板
  1. git push origin :develop  

 

删除本地分支

PHP Code复制内容到剪贴板
  1. git branch -D 本地分支名  

 

 


 

从已有的分支创建新的分支(如从master分支),创建一个dev分支

PHP Code复制内容到剪贴板
  1. Git checkout -b dev  

 

创建完可以查看一下,分支已经切换到dev

PHP Code复制内容到剪贴板
  1. git branch  
  2.   
  3. * dev  
  4. master  

 

提交该分支到远程仓库

PHP Code复制内容到剪贴板
  1. git push origin dev  

 

测试从远程获取dev

PHP Code复制内容到剪贴板
  1. git pull origin dev  

 

 

一个分支的upstream,其实就是与远程分支做关联,告诉git,默认此分支为推送及拉取的远程分支的信息。

upstream的设置

基本设置

 

 

 

1
$ git branch --set-upstream-to=origin/dev

 

 

 

 

 

 

1
git branch -u origin/dev

 

 

 

 

 

此命令的含义是,是指当前分支的upstream为origin远程仓库的dev分支。

在推送的同时,同时设置upstream

 

 

 

1
$ git push -u origin master

 

 

 

命令的含义是,推送master分支到远程origin仓库master分支,并且建立本地分支master的upstream为origin/master。(关于git push更详细的解释,请参考第04章)

不切换分支直接设置其他分支的upstream

 

 

 

1
$ git br -u origin/br01-remote br01

 

 

 

设置本地分支br01的upstream为origin/br01-remote。
或push的时候直接设置。

 

 

 

1
$ git push -u origin br03:br03

 

 

 

 

取消upstream

取消当前分支的upstream

 

 

 

1
$ git branch --unset-upstream

 

 

 

取消其他分支的upstream

 

 

 

1
$ git branch --unset-upstream [分支名]

 

 

 

 

查看upstream

查看upstream信息,主要是查看仓库目录下.git/config文件。

PHP Code复制内容到剪贴板
  1. $ cat .git/config  
  2. [core]  
  3.         repositoryformatversion = 0  
  4.         filemode = true  
  5.         bare = false  
  6.         logallrefupdates = true  
  7. [remote "origin"]  
  8.         url = git@github0123:jeremy0123/fetch.git  
  9.         fetch = +refs/heads/*:refs/remotes/origin/*  
  10. [branch "master"]  
  11.         remote = origin  
  12.         merge = refs/heads/master  
  13. [branch "br01"]  
  14.         remote = origin  
  15.         merge = refs/heads/br01-remote  
  16. [branch "br03"]  
  17.         remote = origin  
  18.         merge = refs/heads/br03  

 

其中[branch "分支名"]下的信息就是upstream信息,remote项表示upstream的远程仓库名,merge项表示远程跟踪分支名。
另外,config中[remote "远程仓库名"]下的url和fetch需要注意下,这些信息可以和第02章的clone信息对应起来。

也可以通过git remote show查看。

PHP Code复制内容到剪贴板
  1. $ git remote show origin  
  2. * remote origin  
  3.   Fetch URL: git@github0123:jeremy0123/fetch.git  
  4.   Push  URL: git@github0123:jeremy0123/fetch.git  
  5.   HEAD branch: master  
  6.   Remote branches:  
  7.     br01-remote tracked  
  8.     br03        tracked  
  9.     master      tracked  
  10.   Local branches configured for 'git pull':  
  11.     br01   merges with remote br01-remote  
  12.     br03   merges with remote br03  
  13.     master merges with remote master  
  14.   Local refs configured for 'git push':  
  15.     br03   pushes to br03   (up to date)  
  16.     master pushes to master (up to date)  

Remote branches表示远程仓库的分支,git pull表示upstream跟踪分支。

 

 问题:

相关贴子:https://my.oschina.net/dlpinghailinfeng/blog/309001

 

一、git 报错:

PHP Code复制内容到剪贴板
  1. error: Malformed value for push.default: master error: Must be one of nothing, matching, simple, upstream or current. fatal: bad config variable 'push.default' in file 'C:\Users\Win10/.gitconfig' at line 5  

解答:git输入

PHP Code复制内容到剪贴板
  1. git config --global push.default matching  

 

 

 

本文来自于:http://www.yoyo88.cn/study/git/111.html

下一篇 关于git回滚
Powered by yoyo苏ICP备15045725号