【git与github交互之主分支和次分支切换、合并等】

git与github交互分支切换

记录git自己账户创建分支切换过程,以及多人协同开发分支切换逻辑。几个人合作用开发项目时,代码保存到GitHub上,我们不可能在原有代码上直接修改调试,这时就要创建一个新的分支,在分支上改自己的代码,修改完成后,把分支上修改的代码合并到主分支master上就好了。

1. 单个账号分支创建合并测试

这个过程需要经过以下几个步骤:

(1)、创建一个分支dev

	git branch dev

(2)、查看分支创建是否成功,下面的命令可以得到现在仓库中的分支列表

	git branch

(3)、master分支是仓库默认的主分支,把工作从main分支下切换到test分支下

	git checkout dev

(4)、假设新建了一个test.txt文件,在dev分支上修改一下该文件,此时在gitbash窗口可以看到空座空间路径后跟着(dev),表明已经切换至此分支

	vim test.txt

(5)、内容修改完成后,通过下面命令把内容提交给dev分支下

	git add -a 或者 git add test.txt        其中-a表示所有的文件均提交,指定文件的话则只提交指定的文件

	git commit -m "备注" 
	
	git push -u origin dev

(6)、有时候push不上去,会出现Branch ‘dev’ set up to track remote branch ‘dev’ from ‘origin’.

	使用git status  ---》检查提交情况,显示没有提交信息,显示没有upstream,
	
	要用 git push --set-upstream origin dev 重新提交

(7)、再把工作从dev分支下切换到main下

	git checkout main

(8)、因为是合作开发项目,这时远程仓库中的内容有可能已经发生了变化,所以我们需要将远程仓库中的内容和本地分支中的内容进行合并

	git pull origin main             #origin为给远程连接地址起的别名,github默认一般都用origin

(9)、接下来要做的是将dev分支合并到main上

	git merge dev

(10)、合并分支可能产生冲突这是正常的,虽然我们这是新建的分支不会产生冲突,但还是在这里记录下。下面的代码可以查看产生冲突的文件,然后做对应的修改再提交一次就可以了。

	git diff

(11)、查看分支中内容提交的状态

	git status

(12)、最后一步,我们把修改的内容提交到主分支上

	git push origin main

(13)、如果你感觉合并后的内容有问题,你可以通过撤销合并恢复到以前状态。

	git reset --hard HEAD

(14)、代码已经提交,撤销的方法是

	git reset --hard ORIG_HEAD

(15)、(13)和(14)步并不能撤销,目前不知道为什么不起作用,后期再来追溯,并且执行这两步后,再次push可能会出现如下问题

	fatal: unable to access ‘https://github.com/…/’: OpenSSL SSL_read: Connection was reset, errno 10054

在这里插入图片描述
经查询得知一般是因为服务器的SSL证书没有经过第三方机构的签署,所以才报错。

解决办法:

	解除SSL验证:git config --global http.sslVerify “false”    #这个操作并没有用,因为git本身用的就是ssl验证,一般是网络卡顿出现的问题,并且我的是https,并不是http,因此此处应改为https
	再次 git push 即可

使用命令 git config --global --edit 可直接进入.gitconfig界面更改相应的内容

(16)、有时候会出现git everything up-to-date

	明明已经更改了本地代码,但是git push的时候一直提示everything up-to-date,创建了新分支,依然push了origin master的版本。
	解决方法特别简单,实际就是在push之前必须要写add和commit。
	git add test.txt
	git commit -m "msg"
	git push

	前面的做法还是不能用
	还是需要用大家说的方法,创建分支,提交代码,在与maser分支合并,最后删除分支
    [参考](https://blog.csdn.net/heguixian/article/details/50883916)

2. 作为项目管理者在gihub页面端对成员提交代码审核并合并

一般为项目负责人创建远程仓库并邀请成员参加;成员参加后,将项目拉取到本地端,新建dev分支,进行内容更改开发,然后将更改的内容推送到远程端共同开发项目的dev分支上;然后就是合并内容,此处有两种合并方法,1,项目负责人在自己的本地仓库直接合并git merge指定分支的内容并解决冲突,然后push到远程main上,这种操作一般对于小项目进行操作,之前博客有合并过程,2,成员将内容推送到远程仓库dev分支上,然后再github界面端申请合并请求,项目负责人在github界面端查看请求同意合并到主分支上即可,下面为在负责人界面端操作步骤:
首先在界面端可以看到上面有一个 Pull requests,拉取请求,现在要做的就是将dev分支上所有的数据拉取到master分支上。打开 Pull requests
在这里插入图片描述
如上图中,编号1的框中提示的意思就是有需要合并的分支,需要拉取一下。但是有的时候是不会提示的,那么这里就用没有提示的情况去演示怎样合并。编号2的框是创建一个新的拉取,点开
在这里插入图片描述
两个框,代表的意义为,想要将2号框中的分支的数据合并到1号框中的分支中去。那么,我们肯定不能是从master到master,是要从dev到master,所以,2号框要选择dev分支
在这里插入图片描述
看1,对钩的意思就是可以合并,没有冲突。就可以点create pull request,创建一个
在这里插入图片描述
这里是填写本次更新的信息,填写完毕之后就可以创建了
在这里插入图片描述
可以看到,绿色对钩,这就表明上面的一系列操作成功了。然后点击Merge pull request即可合并dev到main上。

3. 多人协作开发逻辑流程

负责人创建项目及远程仓库,邀请成员 -> 成员接受邀请,创建自己的分支,每次修改代码,先拉下来最新的代码,解决冲突,然后开始更改代码 -> 更改完成后,将代码推送到远程仓库对应自己的分支->然后进行合并到主分支的请求,一般负责人会在这个阶段设置权限,需要经过他的允许,才能完成pull request;至此完成整个项目的共同开发。如果想回到前面版本,则有相应的命令可以操作,继而实现版本控制,这也是github方便共同开发的地方,后面继续学习,有时间依然会记录下来。

特别感谢以下文章,如有遗漏,请联系作者进行声明:
github合并分支~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值