开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支
- git checkout dev
- git pull
- git checkout master
- git merge dev
- git push -u origin master
二、当master代码改动了,需要更新开发分支(dev)上的代码
- git checkout master
- git pull
- git checkout dev
- git merge master
- git push -u origin dev
查看所有远程分支
- git branch -r
直接拉取指定分支cnooc
- git clone -b cnooc 地址
git冲突
- git reset HEAD 冲突的文件
- git checkout .
- git pull origin 分支名
创建本地分支(2.0.1.20120806是分支名称,可以随便定义)
- git branch 2.0.1.20120806
切换本地分支
- git checkout 2.0.1.20120806
远程分支就是本地分支push到服务器上。比如master就是一个最典型的远程分支(默认)。
- git push origin 2.0.1.20120806
远程分支和本地分支需要区分好,所以,在从服务器上拉取特定分支的时候,需要指定远程分支的名字。
- git checkout --track origin/2.0.1.20120806
注意该命令由于带有--track参数,所以要求git1.6.4以上!这样git会自动切换到分支。
提交分支数据到远程服务器
- git push origin <local_branch_name>:<remote_branch_name>
例如:
- git push origin 2.0.1.20120806:2.0.1.20120806
一般当前如果不在该分支时,使用这种方式提交。如果当前在 2.0.1.20120806 分支下,也可以直接提交
git push
删除远程分支
- git push origin :develop
删除本地分支
- git branch -D 本地分支名
从已有的分支创建新的分支(如从master分支),创建一个dev分支
- Git checkout -b dev
创建完可以查看一下,分支已经切换到dev
- git branch
- * dev
- master
提交该分支到远程仓库
- git push origin dev
测试从远程获取dev
- git pull origin dev
重命名分支,从main改为master
- git branch -m main master
- git push -u origin master
一个分支的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文件。
- $ cat .git/config
- [core]
- repositoryformatversion = 0
- filemode = true
- bare = false
- logallrefupdates = true
- [remote "origin"]
- url = git@github0123:jeremy0123/fetch.git
- fetch = +refs/heads/*:refs/remotes/origin/*
- [branch "master"]
- remote = origin
- merge = refs/heads/master
- [branch "br01"]
- remote = origin
- merge = refs/heads/br01-remote
- [branch "br03"]
- remote = origin
- merge = refs/heads/br03
其中[branch "分支名"]
下的信息就是upstream信息,remote项表示upstream的远程仓库名,merge项表示远程跟踪分支名。
另外,config中[remote "远程仓库名"]
下的url和fetch需要注意下,这些信息可以和第02章的clone信息对应起来。
也可以通过git remote show
查看。
- $ git remote show origin
- * remote origin
- Fetch URL: git@github0123:jeremy0123/fetch.git
- Push URL: git@github0123:jeremy0123/fetch.git
- HEAD branch: master
- Remote branches:
- br01-remote tracked
- br03 tracked
- master tracked
- Local branches configured for 'git pull':
- br01 merges with remote br01-remote
- br03 merges with remote br03
- master merges with remote master
- Local refs configured for 'git push':
- br03 pushes to br03 (up to date)
- master pushes to master (up to date)
Remote branches
表示远程仓库的分支,git pull
表示upstream跟踪分支。
问题:
相关贴子:https://my.oschina.net/dlpinghailinfeng/blog/309001
一、git 报错:
- 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输入
- git config --global push.default matching