首页 > 其他分享 >Git的基本使用

Git的基本使用

时间:2023-08-11 18:44:40浏览次数:33  
标签:基本 devC devA git 仓库 Git 提交 使用 分支

此次仿真试验主要集中于gitee上进行

1、单人项目开发

     git add .                               // 表示将所有代码提交至暂存区
          git commit -m "提交信息"    // 将代码提交至本地仓库,注意提交的附加信息不可或缺
          git push                               // 提交至远程仓库(gitee)  

     需要注意的是: 

2、多人协同开发(重点)

       1) 创建分支是基础,必不可少,此次创建了devA分支以及devB分支(此时,加上master主分支,共三个分支)

    假设:起始是在master主分支

    git branch devA                  // 创建本地分支devA (但此时分支仍定位在master主分支上)

         git branch                           //  查看当前所处分支情况 

         git branch -r                       // 查看远程仓库分支情况

           git checkout -b   devC       // 创建本地分支devC,会发现该创建方式会切换至该分支

                                                   // 同时发现它并不影响远程仓库的分支情况

                   git branch -d devC     // 表示删除本地devC分支,需要注意的是不能所在的分支,

                                                     // 也即当前在本地devC分支不能删除它,需要切换至其他分支才能删除

                   git checkout devA      // 表示切换至本地devA分支

        

         

       2) ① 首先,检查主分支master的代码,发现a最终为a = 000(本地切换至master分支后的图示)

            ②   在master主分支上提交代码至远程仓库

                 1.1 提交所有文件至本地缓存区:    git add .

                 1.2 本地缓存提交至本地仓库   :    git commit -m "主分支提交"

                 1.3 提交至远程仓库                       git push

            此外,可以观察到远程仓库gitee内容也随之发生变化

               ③  一般不允许在主分支master上进行开发,所以此次创建了两个分支,A同学操作分支devA,B操作分支devB

               正常开发流程中,A、B很有可能对同一文件进行操作,而且可能出现不同的修改结果,这在最终合并到主分支时必然会出现冲突问题!

               为了复现该过程,对部分内容进行了简化,但原理都差不多。具体为:B操作修改了MainActivity.java中的变量a的值,将a=000

               修改为a=520,并提交至远程仓库。此时,倘若A想要在devB分支修改a=250时必然会发生冲突(模拟的是A、B分支修改同一变量,最终

                合并时具体保留哪个版本的这一冲突问题),此时就应该对其进行修改,择其一进行保留!!

 此时,对应的本地:

    远程仓库:

 注: 由于devA于devB皆为A多次修改(并解决了相应冲突),导致远程仓库数据devA和devB皆为A用户,为了便于说明,

         B同学新建了devC分支(本地新建分支,提交至远程仓库就会新生成对应分支,无需专门去远程仓库进行建立),

          并提交至了远程仓库。

    查看远程仓库中B操作后的代码以及提交记录(发现B同学操作的a = 4):

 

 

      那A如何将B操作的a值进行修改呢?

    3.1  A首先需要在本地创建devC分支,并切换到该分支;     git checkout -b devC

              3.2  然后手动修改代码中a的值,将其修改成:a=250

            3.3  提交到远程仓库

                   git add .               // 提交至本地缓存

                   git commit -m "我是A,我修改了B在devC分支中的a的值"    // 提交至本地仓库

                   git push origin devC    // 此时,理应出现冲突,好像由于自己手动删除了devC库,居然不发生冲突!!

                 

git pull origin devC // 出现冲突,拉取回来,解决冲突,择优选择保留!!

git  merge  devA  // 假设当前在master分支,那么就是合并devA到master分支去,合并完成后,一定按照提交本地缓存、本地仓库、远程仓库的

  // 方式进行提交,否则无法在远程仓库看到合并后的结果,也即无法看到merge主分支上有devA对应的a值详情,也即devA并未实际合并到merge!!

       

   

标签:基本,devC,devA,git,仓库,Git,提交,使用,分支
From: https://www.cnblogs.com/Qmin/p/17623744.html

相关文章

  • Pycharm配置git
    原文链接:https://www.jianshu.com/p/ae92970d20621.下载Gitee插件同样在设置页面,选中Plugins,并搜索Gitee安装。安装后,重启一下Pycharm。在VersionControl中会增加Gitee选项。2.配置Git账号在上一步新增的VersionControl>Gitee,添加你的账号密码。添加账号密码;......
  • ffmpeg使用avformat_close_input()函数释放结构体时崩溃的问题
    先看一下我调试时,发现程序崩溃的代码位置  //这是我的程序释放流上下文时的操作 if(m_pAvFormatContext) { //释放视频解码器上下文 if(m_iVideoStreamIndex>=0) avcodec_free_context(&m_pVideoDecodeContext);//此处是发生崩溃......
  • 使用nginx进行负载均衡
    目录1、nginx负载均衡介绍2、nginx负载均衡策略我使用了三台VPS服务器,同一网段的,用来搭建网站,推荐你们也可以使用3A服务器1、nginx负载均衡介绍nginx应用场景之一就是负载均衡。在访问量较多的时候,可以通过负载均衡,将多个请求分摊到多台服务器上,相当于把一台服务器需要承担的负......
  • .net core Fleck WebSocket使用笔记
    @@.netcoreFleck socket帮助类usingFleck;usingKOTL_EvidenceService.Model;usingSystem;usingSystem.Collections.Generic;namespaceKOTL_EvidenceService.Util{publicclassServerHelper{WebSocketS......
  • java使用hutool把服务器图片链接转为base64编码
    需求是把服务器的图片链接或者网上的图片链接地址转为base64位编码方便前端操作建议使用方法一base64编码转为图片在线网址https://imgtobase64.d777.com/方法一:使用hutool的HttpResponse方法1.1引入依赖<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artif......
  • c#--Fleck WebSocket使用 (C#版Websocket实例)
    -->https://blog.csdn.net/qq_40580931/article/details/120781798 推荐几篇文章:WebSocket实战C#版Websocket实例C#工作总结(一):Fleck的WebSocket使用1.服务端代码usingFleck;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;namespaceWebSocketTes......
  • 插件Rainbow Brackets插件使用
    插件RainbowBrackets1.自带花括号彩虹色2.高亮部分代码块command+右键代码块3.着重展示,其余都黑标alt+右键代码块4.取消代码高亮按esc......
  • Github编辑TOC目录
    任意1-6个#标注的标题都会被添加上同名的锚点链接 [标题1](#标题1) [标题2](#标题2) [标题3](#标题3) #标题1 ##标题2 ###标题3锚点跳转的标识名称,可使用任意字符,大写字母要转换成小写 [Github标题1](#github标题1) ###Github标题1多单词锚点的空格用-......
  • MySQL全文索引的自然语言搜索使用介绍
    接上篇《MySQL全文索引的布尔搜索使用介绍》自然语言搜索是全文搜索技术中的一种模式,它允许用户使用普通话语或句子来查询,而不需要使用特定的查询语言或格式。这种搜索方式的目的是使查询更加直观和人性化,从而为非技术用户提供更好的搜索体验。以下是关于MySQL中自然语言搜索的......
  • wipefs 和 zcat 命令使用记录
    wipefs–a/dev/sdb以下是wipefs的一些常用用法:擦除整个设备:wipefs-a/dev/sda擦除设备的第一个分区:wipefs-p/dev/sda1擦除设备的所有分区:wipefs-a-p/dev/sda擦除设备的所有元数据:wipefs-a-M/dev/sda擦除设备的所有分区和元数据:wipefs-a-M-p/dev/......