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

开发分支(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  

 

当前分支是master分支,想要合并mock分支的最后一次提交记录 

C/C++ Code复制内容到剪贴板
  1. ## 1、查看当前分支,以及是否有mock分支  
  2. git branch  
  3.   
  4.   
  5. ➜  transaction-mini git:(master) git branch  
  6. * master  
  7.   mock-202503131203  
  8. (END)  
  9.   
  10.   
  11.   
  12. ## 2、如果不在master分支,切换回master分支,在的话,这一步忽略  
  13. git checkout master  
  14. git pull origin master  
  15.   
  16.   
  17. ## 3、查看mock分支最后一次提交的日志  
  18. git log mock-202503131203 -1  
  19.   
  20.   
  21.   
  22. ➜  transaction-mini git:(master) git log mock-202503131203 -1  
  23.   
  24. commit 2a78759764784417440a8d8436b1d392939fb2ad (origin/mock-202503131203, mock-202503131203)  
  25. Author: yoyo <398927951@qq.com>  
  26. Date:   Fri Mar 14 11:00:28 2025 +0800  
  27.   
  28.     分享弹窗  
  29. (END)  
  30.   
  31.   
  32. ## 复制输出的提交哈希值,例如 2a78759764784417440 (截取一部分就行)  
  33.   
  34.   
  35. ## 4、使用 cherry-pick 合并最后一次提交  
  36. git cherry-pick 2a78759764784417440  
  37.   
  38.   
  39.   
  40. ➜  transaction-mini git:(master) git cherry-pick 2a7875976478441744  
  41. [master 7718914] 分享弹窗  
  42.  Date: Fri Mar 14 11:00:28 2025 +0800  
  43.  1 file changed, 70 insertions(+)  
  44.  create mode 100644 custom/components/ext-popup-share.vue  
  45.   
  46.   
  47. ## 5、如果有冲突,解决冲突后执行:  
  48. git add .  
  49. git cherry-pick --continue  

 

 

 

查看所有远程分支 

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  

 


 

重命名分支,从main改为master

C/C++ Code复制内容到剪贴板
  1. git branch -m main master  
  2.   
  3. git push -u origin master  

 

 

 


 

强制删除本地dev分支并同步远程的dev分支

C/C++ Code复制内容到剪贴板
  1. # 强制删除本地dev分支  
  2. git branch -D dev  
  3.    
  4. # 拉取远程仓库所有信息  
  5. git fetch origin  
  6.    
  7. # 切换到远程dev分支  
  8. git checkout dev  
  9.    
  10. # 这时你的本地dev分支将会同步远程的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

关于分支(0)
还可以输入500
暂无评论
下一篇 关于git回滚
Powered by yoyo苏ICP备15045725号