Git之1.0版本重要特性及用法实例(五十二)

news2024/11/17 4:48:48

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者.

新书发布:《Android系统多媒体进阶实战》🚀
优质专栏: Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏: 多媒体系统工程师系列原创干货持续更新中……】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2.Git之1.0版本介绍
      • 1. 分布式版本控制
      • 2. 快速高效的性能
      • 3. 强大的分支和合并机制
      • 4. 非线性开发模型
      • 5. 数据完整性
      • 6. 强大的撤销和恢复功能
      • 7. 轻量级标签
      • 8. 开源和社区驱动
    • 🌻3.代码实例
      • 🐓3.1 分布式版本控制
      • 🐓3.2 本地提交
      • 🐓3.3 快速分支和合并
      • 🐓3.4 SHA-1 哈希值
      • 🐓3.5 暂存区
      • 🐓3.6 远程仓库支持
      • 🐓3.7 文件快照
      • 🐓3.8 回滚和撤销更改

🌻1.前言

本篇目的:Git之1.0版本重要特性及用法实例

🌻2.Git之1.0版本介绍

Git 1.0 是 Git 版本控制系统的第一个正式版本,于 2005 年 12 月发布。作为一个分布式版本控制系统,Git 1.0 具备一些关键特性,使其在开源软件开发领域迅速流行开来。以下是 Git 1.0 的一些重要特性:

1. 分布式版本控制

Git 1.0 的核心特性是其分布式架构。与传统的集中式版本控制系统(如 SVN)不同,Git 不依赖中央服务器。每个开发者都拥有整个代码库的完整副本,包括历史记录。这种分布式特性使得团队协作更加灵活,允许开发者在本地进行提交和历史查看,并在需要时与远程仓库同步。

2. 快速高效的性能

Git 1.0 被设计为非常高效,特别是在处理大型代码库时。Git 使用了基于快照的存储方式,每次提交都是对项目当前状态的快照,而不是像其他系统那样存储文件的差异。这种方式使得 Git 能够高效地管理项目的历史记录,快速执行提交、合并和检查历史记录等操作。

3. 强大的分支和合并机制

Git 1.0 引入了灵活的分支和合并功能,使得并行开发变得更加容易。创建和切换分支在 Git 中非常高效,这使得开发者可以自由地进行实验而不影响主干代码。合并分支时,Git 的三方合并算法能够有效地解决冲突,确保代码库的稳定性。

4. 非线性开发模型

Git 支持非线性开发模型,允许多个开发分支同时存在。开发者可以在不同的分支上进行工作,并在需要时将这些分支合并到主分支中。这种特性非常适合开源项目或大型团队开发,使得多个开发者可以独立工作,然后在适当的时候合并他们的代码。

5. 数据完整性

Git 1.0 非常注重数据完整性。每次提交都会生成一个唯一的 SHA-1 哈希值,作为该提交的标识符。通过这种方式,Git 能够确保数据的完整性,防止任何意外的更改。任何文件的变动都会被追踪,确保项目的历史记录是可靠且不可篡改的。

6. 强大的撤销和恢复功能

Git 1.0 提供了强大的撤销和恢复功能。无论是撤销最近的提交,还是恢复到先前的版本,Git 都提供了灵活的工具。git resetgit revertgit checkout 等命令使得开发者能够轻松处理错误操作,快速恢复到稳定状态。

7. 轻量级标签

Git 1.0 引入了轻量级标签(tag)功能,使开发者能够标记特定的提交点,例如发布版本。这使得代码库的管理更加方便,开发者可以快速定位到关键的发布点或稳定版本。

8. 开源和社区驱动

Git 1.0 是一个开源项目,这意味着它得到了广泛的社区支持。开放的开发模式使得 Git 能够快速演进,吸收来自全球开发者的反馈和改进建议。这种社区驱动的开发模式确保了 Git 的持续改进和快速更新。

🌻3.代码实例

🐓3.1 分布式版本控制

  • 功能描述: Git 允许每个开发者在本地拥有整个项目的完整副本。这使得开发者可以离线工作,并且每个开发者的仓库都可以作为一个备份。
# 初始化一个新的 Git 仓库
git init my_project

# 进入仓库目录
cd my_project

# 创建一个文件
echo "Hello, Git 1.0!" > hello.txt

# 将文件添加到暂存区
git add hello.txt

# 提交更改
git commit -m "Initial commit with hello.txt"

🐓3.2 本地提交

  • 功能描述: Git 允许用户在本地提交更改,而无需立即与远程仓库同步。每次提交都会生成唯一的 SHA-1 哈希值,确保历史记录的完整性。
# 修改文件
echo "New line" >> hello.txt

# 添加更改到暂存区
git add hello.txt

# 提交更改
git commit -m "Added new line to hello.txt"

🐓3.3 快速分支和合并

  • 功能描述: Git 使得创建和合并分支变得非常简单高效,支持并行开发工作流。
# 创建一个新分支
git branch new-feature

# 切换到新分支
git checkout new-feature

# 在新分支上修改文件
echo "This is a new feature" > feature.txt
git add feature.txt
git commit -m "Added feature.txt in new-feature branch"

# 切换回主分支
git checkout master

# 合并新分支到主分支
git merge new-feature

🐓3.4 SHA-1 哈希值

  • 功能描述: 每次提交都会生成一个唯一的 SHA-1 哈希值,确保提交的唯一性和完整性。这为 Git 提供了强大的版本历史追踪能力
# 查看提交日志,包含每个提交的 SHA-1 哈希值
git log

# 输出示例:
# commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0
# Author: Your Name <you@example.com>
# Date:   Mon Jan 1 12:34:56 2000 -0800
#
#     Initial commit with hello.txt

🐓3.5 暂存区

  • 功能描述: Git 引入了暂存区的概念,用户可以将更改添加到暂存区,再决定哪些更改需要提交。这允许更精细的控制。
# 修改文件
echo "Another line" >> hello.txt

# 将更改添加到暂存区
git add hello.txt

# 暂时查看暂存区的内容
git diff --cached

# 提交暂存区的更改
git commit -m "Added another line to hello.txt"

🐓3.6 远程仓库支持

  • 功能描述: Git 支持与远程仓库进行交互,用户可以将本地更改推送到远程仓库,也可以从远程仓库拉取最新的更改
# 添加远程仓库
git remote add origin https://github.com/user/my_project.git

# 将本地的更改推送到远程仓库
git push origin master

# 从远程仓库拉取最新的更改
git pull origin master

🐓3.7 文件快照

  • 功能描述: Git 并不只是存储文件差异,而是每次提交都会存储整个项目的快照,这种方式使得 Git 更加高效
# 查看当前文件的状态
git status

# 查看某个文件的历史版本
git log -p hello.txt

🐓3.8 回滚和撤销更改

  • 功能描述: Git 提供了灵活的回滚和撤销机制,允许用户回退到之前的版本或撤销错误的更改。
# 撤销暂存区中的更改
git reset HEAD hello.txt

# 回滚到上一个提交
git reset --hard HEAD^

# 使用 revert 撤销特定提交
git revert <commit-hash>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2088221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HCS-网络服务

一、华为云Stack网络服务概览 1.网络服务包括&#xff1a;虚拟私有云、弹性负载均衡、弹性IP、网络ACL、虚拟专用网络、云专线、VPC终端节点、云解析 2.华为云Stack网络服务全景图&#xff1a; 二、云上通用网络服务 1.虚拟私有云 虚拟私有云&#xff08;Virtual Private Clo…

C++系列-STL容器之stack

STL容器之stack stack容器的概念stack的构造函数及接口stack的注意事项 浣溪沙簌簌衣巾落枣花 苏轼 簌簌衣巾落枣花&#xff0c;村南村北响缲车。牛衣古柳卖黄瓜。 酒困路长惟欲睡&#xff0c;日高人渴漫思茶。敲门试问野人家。 stack容器的概念 stack容器是一种容器适配器(通…

阿里云数智服务创新挑战赛总决赛铜奖比赛攻略_NJUSME队

关联比赛: 阿里云数智服务创新挑战赛——服务调度比赛 下面我们将从赛题场景、核心算法以及算法的场景拓展对我们的解决方案进行说明。 1 赛题场景 首先对赛题场景进行分析。我们建立流程图&#xff0c;梳理整体的调度流程。首先客户会先进入系统&#xff0c;定位问题明确问…

cesium 雪积压效果(customShader)

cesium 雪积压效果 原理&#xff1a;不同于后处理&#xff0c;这里采用的是customShader 优点&#xff1a;不用模型法线&#xff0c;仅模型雪覆盖 效果图

Qt (12)【Qt窗口 —— 消息对话框 QMessageBox 】

阅读导航 引言一、消息对话框简介二、问题提示消息对话框创建三、信息提示消息对话框创建四、警告信息消息对话框创建五、错误提示消息对话框创建 引言 在上一篇文章中&#xff0c;我们一同探索了Qt框架中窗口与对话框的奥秘&#xff0c;特别是那些由Qt内置提供的、功能丰富且…

公安的实名认证如何对接?

实名认证已成为许多在线服务和应用的必要环节。本文将为您详细介绍如何对接公安的实名认证系统,包括主要合作方、对接流程以及技术细节。 1. 中盾安信简介 北京中盾安信科技发展有限公司(简称"中盾安信")是公安部第一研究所的全资子公司。作为国家"互联网"…

这 3 个开源项目 牛逼的飞起

分享几个 git 上好玩的应用&#xff0c;对独立开发程序感兴趣的小伙伴欢迎关注后期圈&#xff5e; 点个赞呗 01个性化桌面状态栏的神器 开源地址&#xff08;自行添加网址&#xff09;&#xff1a;/polybar/polybar 一个让无数开发者和桌面美化爱好者爱不释手的开源项&#x…

VBA学习(67):Excel VBA 提取数字/自定义工作表函数/正则表达式/批量提取电话号码

正则表达式&#xff08;Regular Expression&#xff09;&#xff0c;又称为“正则式”、“规则表达式”、“常规表示法”&#xff0c;是一种用来匹配、查找、替换字符串的工具。它通过一定的符号、元字符和操作符的组合来表达一个特定的模式&#xff0c;从而匹配符合该模式的字…

opencv实战项目十八:Gabor滤波器提取布料纹理

文章目录 前言一、Gabor简介二、cv2.getGaborKernel&#xff08;&#xff09;三&#xff0c;效果&#xff1a; 前言 在计算机视觉和图像处理领域&#xff0c;纹理分析一直是一个热门且富有挑战性的话题。纹理&#xff0c;作为图像中的一种重要视觉特征&#xff0c;不仅承载着丰…

关于BitConverter.GetBytes取得的值是反的问题

通过百度查询450000转16进制&#xff0c;我们得到的值是6DDD0&#xff0c; 在前面补零之后的值应该是0006DDD0。如下图所示。 实际上我们用BitConverter.GetBytes 方法转换450000为byte[] 的时候, 转换后的值用16进制显示为D0DD0600(因为我这里是一个通讯协议的数据传输前转换&…

回归预测 | Matlab实现GWO-BP-Adaboost灰狼算法优化BP神经网络集成学习多输入单输出回归预测

回归预测 | Matlab实现GWO-BP-Adaboost灰狼算法优化BP神经网络集成学习多输入单输出回归预测 目录 回归预测 | Matlab实现GWO-BP-Adaboost灰狼算法优化BP神经网络集成学习多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现GWO-BP-Adaboost灰…

GMS——利用 ChatGPT 和扩散模型进行制造业革命

概述 论文地址&#xff1a;https://arxiv.org/abs/2405.00958 研究介绍了生成式制造系统&#xff08;GMS&#xff09;&#xff0c;并表明这些系统能有效管理和协调自主制造资产&#xff0c;提高它们对不同生产目标和人类偏好的响应能力和灵活性。 与传统的显式建模不同&#…

嵌入式Linux学习笔记-Linux基础操作

一、Linux 目录结构 二、文件基础操作 Linux 命令一般由三部分组成&#xff0c;命令 选项 参数。 1、pwd&#xff1a;列出当前所在路径 pwd //列出当前所在目录 2、cd&#xff1a;切换路径 cd /home/boot //切换路径为/home/boot cd .. //返回上一级目录…

鸿蒙(API 12 Beta3版)【自定义界面扫码】

基本概念 自定义界面扫码能力提供了相机流控制接口&#xff0c;可根据自身需求自定义扫码界面&#xff0c;适用于对扫码界面有定制化需求的应用开发。 说明 通过自定义页面扫码可以实现应用内的扫码功能&#xff0c;为了应用更好的体验&#xff0c;推荐同时[接入“扫码直达”…

海信电视与《黑神话 :悟空》合作,大屏端流畅游戏体验如何保障?

上线即巅峰 国产3A游戏引发热潮 近期&#xff0c;首款国产3A游戏《黑神话&#xff1a;悟空》自上线以来&#xff0c;便迅速在各大游戏平台占据热销榜首&#xff0c;其销量及在线人数均刷新历史记录。同时&#xff0c;该游戏在各大社交媒体中也拥有超高讨论度&#xff0c;其精湛…

在Ubuntu24.04上安装多主多从的高可用Kubernetes节点

前言 因为镜像拉取失败&#xff0c;所以好多小伙伴说calico网络插件安装失败。之前写过CentOS7上安装多主节点的Kubernets集群&#xff0c;而CentOS7又停止维护了。所以借着在Ubuntu上安装多主的Kubernetes集群的机会&#xff0c;使用国内镜像安装calico网络插件。 视频教程地…

Git实现代码托管

在电脑端下载git:Git - 安装 Git (git-scm.com) 点击继续下载&#xff1a;一直next即可 下载完毕 winR:cmd 输入&#xff1a;git 不报错即可 登录 gitee账号&#xff0c;根据教程完成内容即可创建成功 &#xff01;&#xff01;一定要先登录邮箱账号…

深度学习环境安装与验证指南

目录 1. 项目背景 2. 系统与软件版本 2.1 操作系统与硬件 2.2 软件版本 2.3对应版本 3. 环境配置步骤 3.1 安装 Anaconda 3.2 创建虚拟环境 3.3 安装 CUDA 和 cuDNN 3.3.1 安装 CUDA 11.8 3.3.2 安装 cuDNN 8.6 3.3.3 验证 CUDA 和 cuDNN 安装 3.4 安装 TensorFlo…

国产网卡品牌崛起,做好网络信息安全的“守门人”

在信息技术日新月异的时代背景下&#xff0c;信息安全不仅关乎个人隐私保护&#xff0c;更是国家安全与经济发展的基石。LR-LINK联瑞凭借其前瞻性的视野和深厚的研发实力&#xff0c;成功自主研发出全国产化的FPGA&#xff08;现场可编程门阵列&#xff09;网闸隔离卡方案&…