赞
踩
记录git自己账户创建分支切换过程,以及多人协同开发分支切换逻辑。几个人合作用开发项目时,代码保存到GitHub上,我们不可能在原有代码上直接修改调试,这时就要创建一个新的分支,在分支上改自己的代码,修改完成后,把分支上修改的代码合并到主分支master上就好了。
这个过程需要经过以下几个步骤:
(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)
一般为项目负责人创建远程仓库并邀请成员参加;成员参加后,将项目拉取到本地端,新建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上。
负责人创建项目及远程仓库,邀请成员 -> 成员接受邀请,创建自己的分支,每次修改代码,先拉下来最新的代码,解决冲突,然后开始更改代码 -> 更改完成后,将代码推送到远程仓库对应自己的分支->然后进行合并到主分支的请求,一般负责人会在这个阶段设置权限,需要经过他的允许,才能完成pull request;至此完成整个项目的共同开发。如果想回到前面版本,则有相应的命令可以操作,继而实现版本控制,这也是github方便共同开发的地方,后面继续学习,有时间依然会记录下来。
特别感谢以下文章,如有遗漏,请联系作者进行声明:
github合并分支~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。