《1》该章节我们围绕Git的分支操作进行详细介绍:
列出本地所有分支:
命令:git branch
注意:当前所在的分支会被星号标示出来
拉取分支:
比如从master分支中拉取分支dev-yh-1.0.0
先切换到master分支,并且更新到最新 然后创建分支并且关联远程仓库:
命令:$ git checkout master
命令:$ git pull
例如下面的操作: { 拉取一个分支 }:
命令:$ git checkout -b dev-yh-1.0.0 Switched to a new branch 'dev-yh-1.0.0'
//稍等一会会发现分支会自动切换到dev-yh-1.0.0
推送拉取的新分支到远程仓库中
命令: $ git push origin dev-yh-1.0.0 Total 0 (delta 0), reused 0 (delta 0) remote: remote: To create a merge request for dev-yh-1.0.0, visit: remote: https://git.ichina.cn/service-provider0001/kk-payplatform11/merge_requests/new?merge_request%5Bsource_branch%5D=dev-yh-1.0.0 remote: To https://git.ichina.cn/service-provider111/kk-payplatform111.git * [new branch] dev-yh-1.0.0 -> dev-yh-1.0.0
dell@CTO-yanghong MINGW64 /d/program_files/git_init_project/kk11-payplatform (dev-yh-1.0.0)
把更的内容全部推送到远程分支:命令: $ git push --set-upstream origin dev-yh-1.0.0 Everything up-to-date Branch 'dev-yh-1.0.0' set up to track remote branch 'dev-yh-1.0.0' from 'origin'.//修改了的东西要提交,不然你切回master的时候会发现,分支上修改的东西在master上生效了
注意:在工作中不要使用命令进行操作,且删除分支时需要谨慎进行,因为一但删除远程分支,便无法进行回滚。
在我们删除本地分支后,如果想要通过本地命令行一同将远程分支删除掉的话,可以使用如下命令:
命令:git push origin :分支名称
注意,分支名称前面有一个冒号。
执行命令前,我们登录到gitLab上查看远程仓库现有分支:
删除“远程仓库”中的分支:
命令:$ git push origin :dev-yh-1.0.0To https://git.ichina.cn/service-provider111/kk-payplatf111orm.git - [deleted] dev-yh-1.0.0
如上图所示,我们看到再执行命令后,提示: - [deleted] originFunction
表示已删除originFunction分支。
我们再登录到gitLab上查看远程仓库现有分支:
如上图所示远程仓库中的新拉取的分支[dev-yh-1.0.0]已经删除
命令:$ git branch* dev-yh-1.0.0 master
注意:当前所在的分支会被星号标示出来
因为我们所执行的命令是<<删除远程仓库中的指定分支名称的分支>>,所以不会<<删除本地仓库中对应名称的分支>>。
这种情况下,不建议删除本地中现存的对应名称的分支。因为可以视为一种补救措施,若远程仓库对于删除、回滚等操作未加权限控制的话,由于误操作导致远程分支被删除,恰好对应的本地分支的代码是最新或最近几个版本的代码,可以将本地的分支提交到远程分支,将损失减少一部分。
注意:在工作中不要使用命令进行操作,且删除分支时需要谨慎进行,因为一但删除远程分支,便无法进行回滚。
**********此时执行查看本地仓库中的dev-yh-1.0.0分支是否存在,
删除指定“本地”分支:
命令:git branch -d 删除的分支名称
特别注意: 删除报错信息如: error: Cannot delete branch 'xxx' checked out
解决办法:此错误是在git删除分支时报的错误,删除分支时,当前分支不能停留在要删除的分支上,要切换到其他任意分支,再去删除目标分支。参考:git删除本地分支 git删除远程分支
《2》合并分支:
分支dev-yh-1.0.0合并到master
首先切换到master分支
命令:git checkout master
[root@centosnode01 hongDemo]# git checkout master 切换到分支 'master' 您的分支与上游分支 'origin/master' 一致。
把master更新到最新
命令:git pull origin master
[root@centosnode01 hongDemo]# git pull origin master 来自 https://github.com/honghongyang/hongDemo * branch master -> FETCH_HEAD 已经是最新的。
检查是否已经正确的切换到master分支
[root@centosnode01 hongDemo]# git branch dev-yh-1.0.0 dev1.0* master
把dev-yh-1.0.0 分支的代码合并到master
[root@centosnode01 hongDemo]# git merge dev-yh-1.0.0 更新 3574b8a..51b01e9 Fast-forward print.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 print.txt 看到上面的内容说明已经合并到master分支,但只是在本地仓库中合并,并没有提交到远程仓库,查看远程仓库如下:
并没有看到合并后的print.txt文件
执行下面的文件,把本地仓库中的print.txt文件提交到远程master主分支上
命令:git push origin master
查看远程仓库 :
如图所示,合并成功
