• 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模式
    要保证仓库是空的即可

    再回到本地

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

    python
    git config --global user.email "3014885197@qq.com"
    git config --global user.name "Almira998"

    第二步:远程添加源代码

    python
    # 添加一个远程仓库地址名字叫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依次敲如下代码

    python
    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)

    冲突出现的样子:

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

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


    __EOF__

  • 本文作者: The Road of Learning 阿丽米热
  • 本文链接: https://www.cnblogs.com/almira998/p/17176301.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    C语言序列化与反序列化--TCL中支持的数据结构(二)
    [二进制学习笔记]Ubuntu20.04关闭开启ASLR
    《高质量的C/C++编程规范》学习
    vue开启splitChunks分包处理
    数据结构-二叉查找树(BST)
    06-分布式消息队列Kafka
    ZCC5429 异步升压芯片
    Android+Appium自动化测试环境搭建及实操
    闲置电脑挂机赚钱-Traffmonetizer,支持windows,linux,Android,MacOS多平台
    react 生命周期讲解
  • 原文地址:https://www.cnblogs.com/almira998/p/17176301.html