热门标签 | 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合并代码。

  • ……

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



推荐阅读
  • Git管理工具SourceTree安装与使用指南
    本文详细介绍了Git管理工具SourceTree的安装、配置及团队协作方案,旨在帮助开发者更高效地进行版本控制和项目管理。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • Linux 基础命令详解
    本文介绍了在 Linux 系统中常见的命令及其用法。当用户登录系统后,默认提示符会显示为 [root@localhost ~]# 或 [user@localhost ~]$,其中 # 表示当前用户为 root,$ 表示普通用户。我们将深入探讨一些常用的 Linux 命令,帮助初学者更好地理解和使用这些工具。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 本文详细介绍如何在Linux系统中配置SSH密钥对,以实现从一台主机到另一台主机的无密码登录。内容涵盖密钥对生成、公钥分发及权限设置等关键步骤。 ... [详细]
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社区 版权所有