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.码云的使用 第一步:首先我们 ...
 
随机推荐
- Django框架:2、静态文件配置、form表单、request对象、pycharm链接数据库、django链接数据库、ORM框架
			
Django框架 目录 Django框架 一.静态文件配置 1.静态文件 2.配置方法 二.form表单 1.action属性 2.method属性 三.request对象 1.基本用法 四.pych ...
 - 微软跨平台maui开发chatgpt客户端
			
image 什么是maui .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动(ios,andriod)和桌面(windows,mac)应 ...
 - Sql Server中order by对varchar类型排序结果不对
			
1.问题描述 我写一个sql想要把查询结果根据LineNumber升序进行排序,即1.0,1.1,1.2,...1.3.2....2.0,......10.0,......15.2,......这样子 ...
 - python之路42 JavaScript 基础语法
			
JavaScript简介 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准.次年,ECMA发 ...
 - Asp-Net-Core-搭建ELK日志平台-Docker-Compose版本
			
title: Asp.Net Core 搭建ELK日志平台(Docker-Compose版本) date: 2022-09-27 15:16:59 tags: - .NET 由于暂时用不上Logsta ...
 - Scrapy爬虫框架快速入门
			
安装scrapy pip install scrapy -i https://pypi.douban.com/simple/ 安装过程可能遇到的问题 版本问题导致一些辅助库没有安装好,需要手动下载并安 ...
 - 解决微信小程序 自定义tabBar 切换时候闪烁问题
			
这个闪烁真的很迷 我搜了一些资料,进行了以下步骤的操作 第一种解决办法 ,把tabbar自定义组件的this.setData中的代码注释掉 显示tabbar中的页面中,添加下面的:这个好像没什么用啊 ...
 - vscode快速删除空白行方法
			
1.快速打开替换界面,在Find界面输入^\s*(?=\r?$)\n 2.Alt+R选择Use Regular Expression(Alt+R)即正则表达式模式: 3.选择Replace All(C ...
 - Axure 列表左右滑动交互-删除、置顶
			
Axure 列表左右滑动交互 左滑:删除.标记 右滑:置顶.回复 拖一个动态面板,命名为[滑动面板],添加三个状态,并分别命名为:正常状态.向左状态.向右状态 添加元件 正常状态 向左状态 将[正常状 ...
 - 文献阅读01:由I类HLA转录缺失导致的联合免疫治疗的获得性癌症耐药性
			
背景 Merkel cell carcinoma:梅克尔细胞癌又名皮肤小梁状癌.原发性皮肤神经内分泌癌.皮肤原发性小细胞癌及皮肤APUD瘤. HLA:MHC基因产物在不同细胞表面表达,通常称之为MHC ...
 
			
		




