分布式版本控制 Git 最佳实践(一)

简介: 分布式版本控制 Git 最佳实践(一)

一、版本控制系统 VCS 与 Git

在版本控制系统出现之前版本控制实现的方式通常都是通过拷贝修改文件夹、给文件添加日期或者 v1、v2 这样的标识来实现的,至少我们当时在做性能测试脚本的版本管理时是这样的,几个人协作的时候泽中方式会导致沟通成本非常高,并且非常容易出错,一不小心就拷贝错了或者被覆盖了。

后来就是用了 SVN 来实现版本控制,SVN 是一种集中式的版本控制系统,有一台 Central Server 中保存着所有的版本历史,具备了文件版本管理能力和分支管理能力,集成效率明显提高,但是这要求客户端必须与服务端时刻保持连接,并且每个客户端中没有完整的版本历史。

image.png

由于 VCS 商业化,后来 Linus 开发出了自己的开源的分布式管理系统。

image.png

集中式和分布式最大的区别就是每个节点都包含了版本的完整历史,每个节点都可以管理版本,版本之间管理无须访问服务器,更能提高版本管理的效率。

Git 的特点:

  • 开源、分布式
  • 速度快、性能好
  • 优秀的存储能力
  • 有能力管理类似 Linux 内核一样的超大规模项目 关于 Git 的历史也可以参考 Git Book

二、Git 的安装以及配置

Git 安装

以在云服务器上安装 Git 最新稳定版 2.36.1 为例,安装步骤如下:

# 检查是否已安装 git
git --versioin
# 删除已安装的 git
yum remove -y git
# 安装依赖
yum install -y gcc perl-ExtUtils-MakeMaker curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
# 下载最新版本的 git
wget https://www.kernel.org/pub/software/scm/git/git-2.36.1.tar.gz --no-check-certificate
# 解压 git 安装包
tar -zxvf git-2.36.1.tar.gz
# 重命名并移动到 /usr/local/ 目录下
mv git-2.36.1 /usr/local/git
# 进入 /usr/local/git 目录,并安装
cd /usr/local/git
./configure
make & make install
# 添加环境变量并重启
echo "export PATH=/usr/local/git/bin:$PATH" >> /etc/profile
source /etc/profile
# 再次查看 git 版本
git --version
复制代码

通过 git --version 命令查询到已安装的 Git 版本为 2.36.1

6672d592de454a6fb52c354bf3793d03_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

Git 配置

Git 安装完成之后可以通过 git --help 来查看帮助命令, git config 命令可以用来配置用户信息,这个配置用于显示代码提交人员的信息,当进行Code Review 或者提交的 PR 被合并了等都会通过设置的邮件信息向用户发送邮件。

git config --global user.name 'your username'
git config --global user.eamil 'your email address'
复制代码

--global 是指全局配置,如果不填默认是 local,作用域主要有三个级别:

  • local:只对某个仓库有效
  • global:对当前用户的所有仓库都有效
  • system:对系统所有登录的用户都有效 如果这三个参数都配置了,提交时所采用的 username 和 email 会采用 就近原则,如果 local 有配置就采用,否则才有 global 的配置,以此类推。

也可以通过 git config --list --local\global\system 来查询不同的配置或者所有配置。

Git 的常用名词概念

  • Git 仓库 Repository 目录是 Git 用来保存项目的元数据和对象数据库的地方,分为本地仓库和远程仓库
  • clone 克隆,就是将远程仓库复制到本地
  • push 推送,就是将本地仓库代码上传到远程仓库
  • pull 拉取,就是将远程仓库代码下载到本地仓库
  • commit 提交,将文件提交到本地仓库
  • add 添加,将文件添加到到暂存区

Git 的工作流程

  1. 从远程仓库中 clone 代码到本地仓库或者本地新建一个仓库使用 git init 来初始化
  2. 从本地仓库中 checkout 创建分支代码,然后进行代码修改
  3. 在提交前先将代码 add 添加到到暂存区
  4. commit 提交到本地仓库。本地仓库中保存修改的各个历史版本
  5. 修改完成后,需要和团队成员共享代码时,将代码 push 到远程仓库


相关文章
|
18天前
|
安全 开发工具 git
git分布式版本控制系统及在码云上创建项目并pull和push
通过本文的介绍,我们详细讲解了Git的基本概念和工作流程,并展示了如何在码云上创建项目及进行pull和push操作。Git作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码变更和协作开发。希望本文能帮助您更好地理解和使用Git及码云,提高开发效率和代码质量。
45 18
|
17天前
|
安全 开发工具 git
git分布式版本控制系统及在码云上创建项目并pull和push
通过本文的介绍,我们详细讲解了Git的基本概念和工作流程,并展示了如何在码云上创建项目及进行pull和push操作。Git作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码变更和协作开发。希望本文能帮助您更好地理解和使用Git及码云,提高开发效率和代码质量。
34 16
|
3月前
|
开发工具 git
学习Git的最佳实践有哪些?
遵循这些最佳实践,能让你更高效地使用 Git,更好地管理项目的版本和协作。
|
1月前
|
分布式计算 DataWorks 数据处理
产品测评 | 上手分布式Python计算服务MaxFrame产品最佳实践
MaxFrame是阿里云自研的分布式计算框架,专为大数据处理设计,提供高效便捷的Python开发体验。其主要功能包括Python编程接口、直接利用MaxCompute资源、与MaxCompute Notebook集成及镜像管理功能。本文基于MaxFrame最佳实践,详细介绍了在DataWorks中使用MaxFrame创建数据源、PyODPS节点和MaxFrame会话的过程,并展示了如何通过MaxFrame实现分布式Pandas处理和大语言模型数据处理。测评反馈指出,虽然MaxFrame具备强大的数据处理能力,但在文档细节和新手友好性方面仍有改进空间。
|
1月前
|
开发工具 git 开发者
图解Git——分布式Git《Pro Git》
分布式工作流程主要分为三种模式:集中式工作流、集成管理者工作流和主管与副主管工作流。集中式工作流中,所有开发者同步同一个中央仓库,通过拉取和提交协作;集成管理者工作流中,开发者拥有自己的仓库,通过 `fork` 和请求合并进行协作;主管与副主管工作流适用于大型项目,由主管最终合并代码,副主管负责各自模块。贡献代码时,需考虑活跃贡献者数量、工作流程、提交权限等因素,确保代码合并成功并遵循提交准则。
48 11
|
2月前
|
人工智能 分布式计算 数据处理
云产品评测:MaxFrame — 分布式Python计算服务的最佳实践与体验
阿里云推出的MaxFrame是一款高性能分布式计算平台,专为大规模数据处理和AI应用设计。它提供了强大的Python编程接口,支持分布式Pandas操作,显著提升数据处理速度(3-5倍)。MaxFrame在大语言模型数据处理中表现出色,具备高效内存管理和任务调度能力。然而,在开通流程、API文档及功能集成度方面仍有改进空间。总体而言,MaxFrame在易用性和计算效率上具有明显优势,但在开放性和社区支持方面有待加强。
69 9
|
3月前
|
开发工具 git 开发者
Git 作为最流行的分布式版本控制系统之一,为开发者提供了强大的功能和灵活的操作方式
本文深入介绍了 Git 中的 `git rebase` 操作,涵盖其基本概念、原理、与 `git merge` 的区别、具体操作步骤及应用场景,如保持提交历史整洁、解决合并冲突等,并讨论了其优缺点。强调在公共分支上谨慎使用 rebase,以避免潜在的风险。
53 6
|
3月前
|
存储 算法 开发工具
Git 作为最流行的分布式版本控制系统之一
Git 作为最流行的分布式版本控制系统之一,为开发者提供了强大的功能和灵活的操作方式
62 2
|
3月前
|
测试技术 持续交付 开发工具
Git版本控制在团队协作中具有重要作用
Git版本控制在团队协作中具有重要作用
53 1
|
3月前
|
数据可视化 开发工具 git
如何解决 Git 版本控制系统中冲突的问题?
在Git版本控制系统中,冲突是指在合并或拉取操作时,两个或多个开发者对同一文件的同一部分进行了不同的修改,导致Git无法自动确定应该采用哪种修改。
78 1

热门文章

最新文章