一、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的大前提是按照如下图配置值以下



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

最新文章

  1. 《简单的自定义DropDatePicker》-- UIPopoverController 和 代理 以及 Block 实现。
  2. mac下openresty安装
  3. centos 更换软件源
  4. archlinux 安装mysql-workbench
  5. 【ASP.NET 插件】zyUpload的HTML5上传插件
  6. linux全部命令
  7. Ubuntu - Grub2.0修改默认启动项
  8. ExtJs之Element.select函数
  9. 查看cpu、内存和硬盘
  10. article元素设计网络新闻展示
  11. BASH小脚本
  12. jquery渐隐轮播
  13. net start mongodb 服务名无效解决方案
  14. STM8L052低功耗模式
  15. spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例
  16. 简单(基本)的风光摄影照片后期处理-新手教程-ps照片后期基本处理
  17. ajax实战用法详解
  18. ODT(old driver tree)详解(带例题)
  19. svn cleanup
  20. SElinux测试及排错

热门文章

  1. 全网最全的linux上docker安装oracle的详细文档,遇到了n个问题,查了几十篇文章,最终汇总版,再有解决不了的,私聊我,我帮你解决
  2. 服务器迁移遇到的bug
  3. 时隔3个月,Uber 再遭数据泄露...
  4. uniapp input框聚焦时软键盘弹起整个页面上滑,固定页面不让上滑问题
  5. JavaScript:输出语法
  6. [OpenCV实战]25 使用OpenCV进行泊松克隆
  7. .net core操作MongoDB
  8. mysql游标最后一行重复问题
  9. python之路52 ORM查询、ORM事务、查询优化、常用字段及参数、ajax方法
  10. windows安装wordcloud遇到的坑汇总