文章目录

  • git与github交互分支切换
    • 1. 单个账号分支创建合并测试
    • 2. 作为项目管理者在gihub页面端对成员提交代码审核并合并
    • 3. 多人协作开发逻辑流程

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.txtgit 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合并分支~

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

  1. git/github使用完整教程(2)分支

    分支 首先,我们创建dev分支,然后切换到dev分支: $ git checkout -b dev Switched to a new branch 'dev' git checkout命令加上-b参 ...

  2. Git分支 查看branch 创建 切换checkout 合并merge(先切回主分支) 删除branch -d 推送push

    Git分支 分支的概念 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN.如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时 ...

  3. 【Git、GitHub、GitLab】七 git中分支的删除以及出现分离头指针的情况

    上一篇文章学习了GIT中commit.tree和blob三个对象之间的关系,点击链接查看:[Git.GitHub.GitLab]六 GIT中commit.tree和blob三个对象之间的关系 文章目录 ...

  4. Git、GitHub、GitLab Flow,傻傻分不清?一图看懂各种分支管理模型

    理论是灰色的,生命之树常青. 引言 任何一家公司乃至于一个小组织,只要有写代码的地方,就有代码版本管理的主场,初入职场,总会遇到第一个拦路虎 git 管理流程,但是每一个企业似乎都有自己的 git 管 ...

  5. 【Git】Git 分支管理 ( 解决分支合并冲突 | 推送主版本和分支版本到远程仓库 | 合并分支出现文件冲突 )

    文章目录 一.推送主版本和分支版本到远程仓库 二.合并分支出现文件冲突 一.推送主版本和分支版本到远程仓库 执行 git push origin master 命令 , 将 master 分支推送到远 ...

  6. 前端基础-git(三):git和GitHub的一些基础操作

    github是一个网站,是一个开源的源代码管理平台,用户注册后,可以在自己账户下创建仓库,用来管理项目的源代码(源代码是基于git传到仓库中) 我们所熟知的插件.类库.框架等都在这个平台上有托管,我们 ...

  7. 如何用Git向GitHub上传送文件(从注册GitHub到用Git上传的每一步)

    文章目录 1.GitHub 1.1.GitHub注册(已经注册过的直接看1.2GitHub仓库的建立) 1.2 GitHub仓库的建立 2.Git 2.1Git 安装 2.2 Git 下载 2.3 G ...

  8. 【转】理清基本的git(github)流程

    概述 当我初次接触git时,我需要快速学习基本的git工作流,以便快速接收一个开源Web项目维护.但是,我很难理解工作流程,因为我不太了解git使用关键点. fork,clone,pull.branc ...

  9. Git用户手册--GitHub

    2019独角兽企业重金招聘Python工程师标准>>> 6.1 GitHub - 账户的创建和配置 GitHub 是最大的 Git 版本库托管商,是成千上万的开发者和项目能够合作进行 ...

最新文章

  1. WebView 实现JS效果和a标签的点击事件
  2. mysql存储过程遍历新增_MySQL存储过程:内部调用存储过程、存储过程实现遍历数据库建表以及修改字段...
  3. sql IFNULL
  4. 白话Elasticsearch40-深入聚合数据分析之案例实战_Global Aggregation:单个品牌与所有品牌平均价格对比
  5. 恢复误删数据(SQL Server 2000)--Log Explorer
  6. Express接口案例——完成文章评论相关的接口
  7. Java 底层知识:什么是 “桥接方法” ?
  8. c++画多边形_如何画出超漂亮的极光绘画教程
  9. EL4.1配置文件管理浅谈(1)
  10. day 029 缓冲区和粘包 day 30 粘包的解决
  11. Ubuntu 16.04.5部署Django环境
  12. 2020-5-9 开始阅读深入理解java虚拟机
  13. rust大油井频率怎么用_90%的人都不会用电吹风!用不好危害大!1分钟告诉你到底怎么用...
  14. Hive安装与配置详解
  15. wifi6无线网卡驱动linux,ROG R6E Omega换wifi 6无线网卡教程
  16. EditPlus中文绿色破解版
  17. 按键精灵手机助手学习过程中的教程集锦收藏
  18. html古诗竖行排列,古诗词竖版图片
  19. 在SVN安装目录的bin文件夹下没有找到svn.exe
  20. php的console.log,console.log()的作用

热门文章

  1. python3中生成图片验证码和短信验证码的程序
  2. 求n的阶乘及1~n的阶乘之和
  3. Go+ 发布 weekly release: v0.7.3
  4. m4s格式转换mp3_超级详细!如何将B站缓存m4s文件无损转换为mp4格式
  5. ARMv7 与 ARMv8的区别
  6. vue项目created()被调用多次的坑
  7. Android :高德地图demo
  8. Altium Designer 21 原理图库元件模型的组成介绍以及简单的电阻电容元件模型的创建
  9. Linux 安装docker教程
  10. 搜狗输入法 linux 17.04,Ubuntu17.04 安装搜狗中文输入法的方法