5

Git多分支 远程仓库 协同开发以及解决冲突 - 阿丽米热

 1 year ago
source link: https://www.cnblogs.com/almira998/p/17176301.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

一、Git多分支及远程仓库

1.Git多分支

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

2987444-20230302163411984-1580937238.png

#分支操作的详细步骤

第一步:分支查看 git branch

2987444-20230302155511611-1273144258.png

第二步:分支创建 git branch dev
branch后面写分支的名称,比如dev(develop,即开发分支),dev指的是要创建的分支名字
2987444-20230302160129404-1155207863.png

第三步:分支切换 git checkout dev
切换的关键字是checkout,checkout后面写要切换的分支名字(dev)
2987444-20230302162359497-805418348.png
第四步:分支删除 git branch -d dev
需要注意的是:在dev分支上不能删除dev分支,需要先切换到master分支上执行删除命令
2987444-20230302162338811-31834129.png

分支合并

2987444-20230302164819678-22877223.png

2987444-20230302173635271-22057245.png

以上都是在本地操作;接下来要研究的是远程操作!

2.正常密码链接远程仓库

把本地的版本提交到远程仓库比如说(gitee,github,gitlab。。。。),本篇文章以Gitee为例讲解此过程,提供一下gitlab的搭建过程https://zhuanlan.zhihu.com/p/413217715
因为路飞项目写好了一部分板块,按照敏捷开发的思路,完全可以管理代码,以下是具体步骤

-------------------------------------------------------------------开始--------------------------------------------------------------

第一步:在luffy_api 敲git init
tips:避免操作过程中不小心丢失项目文件,最好复制一份用来练习题材

2987444-20230302195105204-1213975799.png


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

2987444-20230302201629213-1724705794.png


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

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

2987444-20230302202439143-1791359289.png


------------提交到了本地版本库 被版本管理了------------

第一步:远程要创建仓库:gitee上创建仓库,右上角 +

2987444-20230302202949783-1132234396.png


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

2987444-20230302205937611-1207390237.png


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

2987444-20230302210101719-1416074942.png

再回到本地

第一步:设置设置邮账户和邮箱

python
git config --global user.email "[email protected]"
git config --global user.name "Almira998"

2987444-20230302211118124-730804990.png

第二步:远程添加源代码

python
# 添加一个远程仓库地址名字叫origin,地址是xxx
git remote add origin https://gitee.com/almira998/luffy_api.git
# 把本地当前所在分支,推送到 origin对应的远程的master上
git push origin master

仓库地址在图里面提示找就行

2987444-20230302211640539-1923632903.png


说明密码远程提交成功

2987444-20230302214536542-135486448.png

-------------------------------------------------------------------结束--------------------------------------------------------------

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号端口 安全系数较高。

2987444-20230302152457982-259144486.png

产生密钥的步骤
第一步:访问浏览密钥产生网址

第二步:获取产生密钥的命令ssh-keygen -t ed25519 -C "[email protected]"

2987444-20230303150338358-261546869.png


2987444-20230303150601002-1843742159.png


2987444-20230303150852635-1878358923.png


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

2987444-20230303151421817-1981024752.png


2987444-20230303151812277-2072432449.png


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

2987444-20230303152133181-1065091011.png


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

2987444-20230303153143674-1960270536.png

三、协同开发及解决冲突

1.协同开发

第一步:仓库管理员,邀请开发者进入>>>:邀请的开发者,对这个仓库就有读写权限,他们就可以开发代码,提交

第二步:作为开发者,本地没有代码
第三步:把代码从远程仓库 clone 下来
git clone [email protected]:liuqingzheng/luffy_api.git
第四步:使用pycharm打开,配置好解释器,安装依赖
第五步:开发代码,terminal依次敲如下代码

python
git add
git config --global user.email "[email protected]"
git config --global user.name "米热"
git config user.name lqz
git config user.email [email protected]
git commit
git push origin master

2.解决冲突

出现冲突的原因

多人在同一分支开发

避免冲突的原则

你如果想少出现冲突>>>:勤拉取代码(git pull origin dev)

冲突出现的样子:

python
你如果要删除别人的代码,你需要跟别人说一声
<<<<<<< HEAD   我的代码
print('刘亦菲')
=======   它的代码
print('彭于晏')
>>>>>>> 6f720edbd84c8744b1c7c10767fb89a5d0fa98f5

解决冲突的方法

箭头去掉,阅读代码,选择保留或删除别人或自己的代码,再提交

四、线上分支合并及远程仓库回滚

1.线上分支合并

python
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

五、为开源项目贡献代码

python
# github,gitee 看到好的开源项目,  发现有bug,为他增加新功能---》你加入了代码---》想合并进开源项目,如何做

# 步骤:
	1 先fork开源项目--》复制这个项目到我的仓库中
    2 clone下来,改代码,一路提交到远端(我的)
    3 提交pr,等作者同意

六、pycharm使用git的教程

只要用命令操作的,都可以点击完成(命令都可以封装成图形化界面),pycharm使用gitgit的大前提是按照如下图配置值以下

2987444-20230303162258458-2035661920.png


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

2987444-20230303164859398-2119388021.png

__EOF__


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK