Git多分支 远程仓库 协同开发以及解决冲突
一、Git多分支及远程仓库
1.Git多分支
首先要搞明白什么是多分支? 为什么要多分支? 接下来回答一下这两个问题吧!首先分支就是一个仓库的字库;多分支可以保证主分支的版本都是可以查看的版本、我们都在开发分支开发,开发完成,合并到主分支。

#分支操作的详细步骤
第一步:分支查看 git branch
第二步:分支创建 git branch dev
branch后面写分支的名称,比如dev(develop,即开发分支),dev指的是要创建的分支名字
第三步:分支切换 git checkout dev
切换的关键字是checkout,checkout后面写要切换的分支名字(dev)
第四步:分支删除 git branch -d dev
需要注意的是:在dev分支上不能删除dev分支,需要先切换到master分支上执行删除命令
分支合并
以上都是在本地操作;接下来要研究的是远程操作!
2.正常密码链接远程仓库
把本地的版本提交到远程仓库比如说(gitee,github,gitlab。。。。),本篇文章以Gitee为例讲解此过程,提供一下gitlab的搭建过程https://zhuanlan.zhihu.com/p/413217715
因为路飞项目写好了一部分板块,按照敏捷开发的思路,完全可以管理代码,以下是具体步骤
-------------------------------------------------------------------开始--------------------------------------------------------------
在本地
第一步:在luffy_api 敲git init
tips:避免操作过程中不小心丢失项目文件,最好复制一份用来练习题材

第二步:设置忽略文件(.gitignore)

这是忽略文件名大全,我自己没有完全写好就提交到版本库了,也不想来来回回,想着在笔记里面总结一下

第三步:执行提交暂存区和版本库的命令
git add .
git commit -m '第一次提交'

------------提交到了本地版本库 被版本管理了------------
在远程
第一步:远程要创建仓库:gitee上创建仓库,右上角 +

第二步:填写一些基本信息,下面的是创建仓库需要填写信息的详细讲解

最后不要勾选初始化仓库和设置模板
开发者模式设置为master/develop模式
要保证仓库是空的即可

再回到本地
第一步:设置设置邮账户和邮箱
git config --global user.email "3014885197@qq.com"
git config --global user.name "Almira998"

第二步:远程添加源代码
# 添加一个远程仓库地址名字叫origin,地址是xxx
git remote add origin https://gitee.com/almira998/luffy_api.git
# 把本地当前所在分支,推送到 origin对应的远程的master上
git push origin master
仓库地址在图里面提示找就行

说明密码远程提交成功

-------------------------------------------------------------------结束--------------------------------------------------------------
3.ssh公钥私钥方式链接远程仓库
首先回顾一下什么是SSH吧 !SSH(Secure Shell),由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平台,都可运行SSH。传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"。SSH协议框架中设计了大量可扩展的冗余能力,比如用户自定义算法、客户自定义密钥规则、高层扩展功能性应用协议。这些扩展大多遵循 IANA 的有关规定,特别是在重要的部分,像命名规则和消息编码方面。SSH采用面向连接的TCP协议传输 应用22号端口 安全系数较高。

产生密钥的步骤
第一步:访问浏览密钥产生网址
第二步:获取产生密钥的命令ssh-keygen -t ed25519 -C "3014885197@qq.com"



第三步:在Gitee里的ssh部分配置公钥


这样就配置完公钥了,接下来重新提交到远端,之后不用填写账号和密码了,一路绿灯
第四步:在仓库位置找克隆与下载按钮,然后ssh对应的地址复制下来

第五步:重新设置ssh地址提交地址,就完成了ssh方式远程提交代码的操作

三、协同开发及解决冲突
1.协同开发
第一步:仓库管理员,邀请开发者进入>>>:邀请的开发者,对这个仓库就有读写权限,他们就可以开发代码,提交
第二步:作为开发者,本地没有代码
第三步:把代码从远程仓库 clone 下来
git clone git@gitee.com:liuqingzheng/luffy_api.git
第四步:使用pycharm打开,配置好解释器,安装依赖
第五步:开发代码,terminal依次敲如下代码
git add
git config --global user.email "3014885197@qq.com"
git config --global user.name "米热"
git config user.name lqz
git config user.email 3@qq.com
git commit
git push origin master
2.解决冲突
出现冲突的原因
多人在同一分支开发
避免冲突的原则
你如果想少出现冲突>>>:勤拉取代码(git pull origin dev)
冲突出现的样子:
你如果要删除别人的代码,你需要跟别人说一声
<<<<<<< HEAD 我的代码
print('刘亦菲')
======= 它的代码
print('彭于晏')
>>>>>>> 6f720edbd84c8744b1c7c10767fb89a5d0fa98f5
解决冲突的方法
箭头去掉,阅读代码,选择保留或删除别人或自己的代码,再提交
四、线上分支合并及远程仓库回滚
1.线上分支合并
gitee上,新建一个分支
本地同步远程dev分支
git pull origin dev # 拉下来了,还看不到,只有切过去,才看的导
git checkout dev
在dev上开发
随便加代码
git add
git commit
提交到本地的dev了
git push origin dev # 推到远端 dev
master中没有代码,dev中有提交的,现在要线上分支合并
把远程的dev合并进远程的master
提交pr 提交rr
在网站上,申请提交pull request
领导审核,测试,通过后,点击合并
线上dev就合并进线上的master了
2.远程仓库回滚
你不要用 因为远程回滚指的是把远程的代码回滚到最初的状态,这是一个危险操作,原因是一旦回滚到最初状就相当于之前所做的工作白费了,其实可以找回的但是这项工作是另一项费时间的体力活。非常麻烦,所咱们不要轻易地敲 【 -f 】
远程仓库回滚的操作步骤如下:
第一步:本地版本回退
git reset --hard 版本号
第二步:强行推到远端
git push origin master -f
五、为开源项目贡献代码
# github,gitee 看到好的开源项目, 发现有bug,为他增加新功能---》你加入了代码---》想合并进开源项目,如何做
# 步骤:
1 先fork开源项目--》复制这个项目到我的仓库中
2 clone下来,改代码,一路提交到远端(我的)
3 提交pr,等作者同意
六、pycharm使用git的教程
只要用命令操作的,都可以点击完成(命令都可以封装成图形化界面),pycharm使用gitgit的大前提是按照如下图配置值以下

详细使用方法看下面的截图

Git多分支 远程仓库 协同开发以及解决冲突的更多相关文章
- Visual Studio C# 利用git和github协同开发时产生冲突的解决办
Visual Studio C# 利用git和Github协同开发时产生冲突的解决办法 前言:在前两天的助教作业中,发现了自己没有办法解决在用vs开发C#的窗体项目的过程中产生的冲突问题,在查阅了资料 ...
- git如何删除远程仓库的某次错误提交
git如何删除远程仓库的某次错误提交 如果远程仓库,能ssh访问,那就跟本地没什么区别 reset命令有3种方式 git reset --mixed 此为默认方式,不带任何参数的git res ...
- [gitHub实践] git基础:远程仓库的使用
[gitHub实践] git基础:远程仓库的使用 版权2019.6.2更新 git 基础 远程仓库的使用 git remote # 查看远程仓库 $ git remote # 克隆的仓库服务器默认名字 ...
- git指令-添加远程仓库
git指令-添加远程仓库 首先在GitHub上创建属于你自己的远程仓库:例如我创建的远程仓库mybatis用于我最近保存的mybatis代码 目前,在GitHub上的这个learngit仓库还是空的, ...
- Myeclipse如何使用自带git工具向远程仓库提交代码(转)
Myeclipse如何使用自带git工具向远程仓库提交代码 第一步:将改动的代码标记 项目右键:team->synchronize workspace 点击确定 项目右键>add to g ...
- git关联github远程仓库的问题
git关联github远程仓库的时候,报fatal: remote origin already exists. 导致这个问题原因可能是之前关联的时候关联错了,再次关联就不行了. 解决办法是: 1.将 ...
- 解决git push至远程仓库失败的问题
产生问题的原因: 远程仓库存在本地不存在的文件, 一个常见的例子是创建repository时勾选了README.md, 但此时本地还没有这个文件, 就会导致本地文件无法同步到远程仓库的问题. 解决方法 ...
- git 本地给远程仓库创建分支 三步法
命令如下: 1:本地创建分支dev Peg@PEG-PC /D/home/myself/Symfony (master) $ git branch dev 2:下面是把本地分支提交到远程仓库 Peg@ ...
- git教程(远程仓库和管理分支)
在github上新建了一个仓库,然后相与本地的仓库联系起来 $ Git remote add origin https://github.com/liona329/learngit.git fatal ...
- git推送远程仓库以及分支介绍
1.介绍 我们要把本地仓库的项目推送到远程服务器,首先我们得有自己的服务器,一般我们选择码云和github,码云和github的操作差不多,今天我们再次介绍码云的使用 2.码云的使用 第一步:首先我们 ...
随机推荐
- Vue快速上门(2)-模板语法
VUE家族系列: Vue快速上门(1)-基础知识 Vue快速上门(2)-模板语法 Vue快速上门(3)-组件与复用 01.模板语法 1.1.template模板 <template>是H5 ...
- Jmeter ForEach 循环控制器
ForEach Controller 即循环控制器,顾名思义是定义一种循环规则,如下图: 1.名称:控制器名称,可根据用户需要任意填写,也可不填 2.注释:用户可根据需要任意填写,也可不填 3.输入变 ...
- 交互式仪表板!Python轻松完成!⛵
作者:韩信子@ShowMeAI 数据分析实战系列:https://www.showmeai.tech/tutorials/40 本文地址:https://www.showmeai.tech/artic ...
- latex文档的中文字体设置
Latex文档的中文字体设置 近日在用latex写论文时遇到了中文字体设置的问题.具体问题如下,正文字体为宋体,摘要和关键词字体为仿宋.作为latex云玩家,我马上百度了中文字体的设置方法.搜索到了如 ...
- Git和Maven的学习笔记
Git 1.Git简介 Git 是一个免费的.开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目. Git 易于学习,占地面积小,性能极快. 它具有廉价的本地库,方便的暂存区域和多个 ...
- elasticsearch之单请求多查询
一.需要解决的问题 有的时候我们需要同时执行多个查询,并且需要得到每个单独查询的搜索结果,elasticsearch提供了multi search此需求的支持: 二.elasticsearch mul ...
- [C++]union联合体总结
特点一:成员公用内存,且按所占内存最大的数据成员分配内存 //举例1 union A{ char a;//1个字节 int b;//4个字节 char c;//1个字节 } cout<<s ...
- P3934 [Ynoi2016] 炸脖龙 I
题面 给一个长为 \(n\) 的序列,\(m\) 次操作,每次操作: 1.区间 \([l,r]\) 加 \(x\) 2.对于区间 \([l,r]\),查询: \[a[l]^{a[l+1]^{a[l+2 ...
- Google Cloud Spanner 究竟是什么?
谷歌于2017年推出的Google Cloud Spanner,原是谷歌内部使用的一个数据服务,后来又成为了谷歌云平台上搭建的数据库服务. Google Cloud Spanner 是一种数据库,它结 ...
- DRF安装与使用
目录 DRF安装与使用 一.web应用模式(前后端不分离&前后端分离) 二.API接口 1.API接口概念讲解 2.IPA接口测试工具postman 3.RESTful API规范 4.幂等性 ...





