热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Git——分布式版本控制系统的使用体验

Git——分布式版本控制系统的使用体验1、前言——认识Git什么是Git?用作者的话来说,Git是一套系统,是一种规范,用于一个或多个项目的一体式DevOps平台。对于多人协作开发

Git —— 分布式版本控制系统的使用体验

1、前言——认识Git

什么是Git?用作者的话来说,Git是一套系统,是一种规范,用于一个或多个项目的一体式DevOps平台。对于多人协作开发,这套系统带来的代码同步在其中能够起到巨大的作用,它的出现,能够让所有人的代码保持最新的状态,能够同时开发多个版本,例如alpha、beta等等。同时,它在某种意义上又是一种快照,能够迅速恢复到之前可以运行的状态,防止代码遭遇“毁灭性”破坏或是突然无法编译运行。

目前,市面上有着许多Git的实现方式,这里介绍两大较为主流的现成的代码托管平台,它们是:



  • GitHub https://github.com/

  • Gitee https://gitee.com/

还有一种用于拥有独立服务器的团体或个人,往往是为了安全考虑,即GitLab,它需要自己在Linux上搭建运行环境,能够对自己所在的环境做个性化的设置,这里就不多做介绍了。

为了保证连接上的稳定,本文将使用Gitee作为代码托管平台,IDE使用IntelliJ IDEA 2022.1。


2、如何使用?

仓库的使用有两种方式,一种是使用IDE直接新建仓库并推送,另一种如下文所示,在手动创建仓库后在IDE内推送,适用于IDE不支持的代码托管平台。由于篇幅有限,本文将只介绍一些主要功能,仓库的推送&克隆。


仓库创建

来到Gitee的官方网站,注册账号后来到工作台,点击头像左侧的加号,选择新建仓库就会来到以下页面。

输入名称和路径,这里推荐使用全英文输入,因为输入中文可能会导致一些奇奇怪怪的bug。

由于要使用现成的代码,因此不勾选下面的三个选项,仓库名称和路径上也和即将使用的项目上保持一致。

推送项目前需要在计算机上安装Git软件 安装方法:https://git-scm.com/book/zh/v2/起步-安装-Git/

然后来到个人设置,在SSH公钥中根据网站指引使用邮箱和刚刚安装好的Git软件添加一个新的公钥,由于隐私问题该过程将省略,添加完成后可以在Git Bash中使用以下代码测试是否成功,其中@后的内容为托管平台的域名,根据实际需要改变。

ssh -T git@gitee.com

来到创建好的仓库页面,选择SSH并复制链接。


仓库推送

打开需要推送的仓库,在菜单栏中选择VCS - 创建Git仓库,IDE将自动选择项目路径,点击确定即可。

此时,IDE将自动生成.gitignore文件,它用于在推送整个仓库时,避免上传一些不需要的文件(包括但不限于编译生成的文件,IDE的项目设置等),从而增加仓库大小,造成不必要的空间浪费同时增加了协作人的克隆仓库的速度,屏幕上方的VCS也变成了Git,再次打开该菜单,选择管理远程,输入前面复制的SSH链接后点击确定。

推送前我们还要将代码提交,提交的作用相当于保存一个快照,还是在Git菜单中,选择提交,输入提交内容(一般是写了什么,例如初始化仓库,修复了xxx的bug等),选择提交并推送即可,若报错,可选择仍然提交并推送。

回到网页,可以在仓库中看到刚刚推送的文件。


仓库克隆

打开IDEA,在主页的右上角选择“从VCS获取”即可来到如下页面,URL中填写他人分享的链接,或是点开自己仓库中的橙色按钮(克隆/下载)复制链接,选择本地目录后点击克隆即可将仓库克隆到本地。


术语解释

推送(push):将整个项目上传到代码托管平台。

克隆(clone):将他人分享(或是自己)的项目下载到本地以供打开。

提交(commit):将当前项目打包到本地仓库暂存等待推送。


3、结语

本次体验即将告一段落,Git的使用远不止上文所提到的内容,它的进阶玩法还有很多很多,包含:



  • 利用GPG密钥给自己的代码签名,用于公共仓库中给别人看到是代码作者提交的修改。

  • 创建不同的分支,对多个版本进行并行开发。

  • 所有人都能创建Issue,可以说明当前程序中有什么bug或是开发者即将开发的功能。

  • 若是在有人没有及时更新本地的代码,导致和云端不同步使得不能推送自己辛辛苦苦改的代码时,合并(merge)功能的使用。

  • 他人克隆你的仓库后做出的一些修改可以使用Pull Request合并代码。

  • ……

作为一个代码托管平台,除了以上提到的最基础的功能外,它能做的还有很大空间等待着我们的探索,合理正确的使用能够最大化工作效率,从而为团队开发带来极佳的效果。



推荐阅读
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了2020年计算机二级MSOffice的选择习题及答案,详细解析了操作系统的五大功能模块,包括处理器管理、作业管理、存储器管理、设备管理和文件管理。同时,还解答了算法的有穷性的含义。 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
author-avatar
手机用户2602899031
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有