当前位置: 首页 > news >正文

【Git】分布式版本控制工具

一、简介
二、目标

Git分布式版本控制工具

一、简介

Git是一种分布式版本控制系统,用于跟踪和管理源代码的变化。它由林纳斯·托瓦兹(Linus Torvalds)于2005年开发,并迅速成为最流行的版本控制工具之一。以下是关于Git的一些关键点:

核心概念

  1. 分布式版本控制:与集中式版本控制系统(如Subversion或CVS)不同,Git的每个用户都有整个项目的完整历史记录。这意味着即使没有网络连接,用户也可以进行提交、查看历史记录等操作。

  2. 仓库(Repository):存储项目的目录。它包含所有文件的当前版本、历史版本以及Git用于管理这些版本的所有元数据。

  3. 分支(Branch):项目的并行版本,用于开发新功能或修复错误。Git允许快速切换分支和合并分支。

  4. 提交(Commit):保存文件的一个快照。每次提交都有一个唯一的SHA-1哈希值标识,并包含提交信息(如作者、日期、描述等)。

  5. 合并(Merge):将一个分支的变化合并到另一个分支中,通常用于将新功能或修复合并到主分支。

  6. 克隆(Clone):创建远程仓库的本地副本。用户可以在本地仓库中进行开发,并在完成后将更改推送回远程仓库。

  7. 拉取(Pull)和推送(Push):拉取操作从远程仓库获取更新,推送操作将本地更改发送到远程仓库。

基本操作

  • 初始化仓库git init
  • 克隆仓库git clone <repository-url>
  • 添加文件到暂存区git add <file>
  • 提交更改git commit -m "Commit message"
  • 查看状态git status
  • 查看历史记录git log
  • 创建分支git branch <branch-name>
  • 切换分支git checkout <branch-name>
  • 合并分支git merge <branch-name>
  • 推送到远程仓库git push <remote> <branch>
  • 从远程仓库拉取更新git pull <remote> <branch>

优势

  • 分布式架构:提高了系统的弹性和可靠性。
  • 高效的分支和合并:使并行开发变得容易。
  • 强大的社区支持:有丰富的资源和扩展工具,如GitHub、GitLab等。

常用工具

  • GitHub:托管和管理Git仓库的云平台,提供协作和代码审查功能。
  • GitLab:类似于GitHub,支持私有仓库和持续集成/持续部署(CI/CD)。
  • Bitbucket:另一个流行的Git仓库托管服务,特别支持Mercurial。

Git的强大和灵活性使其成为现代软件开发中不可或缺的工具。无论是个人项目还是大型团队协作,Git都能提供高效的版本控制和协作功能。

二、目标

1、了解 Git 基本概念

  1. 版本控制系统:用于管理项目源代码的不同版本,跟踪代码变更历史。
  2. 分布式:每个开发者都持有项目的完整历史记录,便于离线操作和协作。
  3. 仓库(Repository):存储项目的目录,包括所有版本的文件和元数据。
  4. 分支(Branch):项目的并行版本,用于开发新功能或修复错误。
  5. 提交(Commit):保存文件的一个快照,每次提交都有一个唯一的SHA-1哈希值标识。
  6. 暂存区(Staging Area):一个临时区域,用于存放即将提交的文件快照。
  7. 远程仓库(Remote Repository):托管在云端或服务器上的仓库,用于团队协作。

2、Git 工作流程概述

  1. 克隆仓库(Clone Repository):从远程仓库创建本地副本。
    git clone <repository-url>
    
  2. 创建新分支(Create Branch):为新功能或修复创建分支。
    git checkout -b <branch-name>
    
  3. 修改文件(Modify Files):在本地进行开发和修改。
  4. 添加到暂存区(Stage Changes):将修改添加到暂存区。
    git add <file>
    
  5. 提交更改(Commit Changes):将暂存区的修改提交到本地仓库。
    git commit -m "Commit message"
    
  6. 推送到远程仓库(Push to Remote Repository):将本地提交推送到远程仓库。
    git push origin <branch-name>
    
  7. 拉取远程更新(Pull Remote Changes):从远程仓库拉取更新到本地。
    git pull origin <branch-name>
    
  8. 合并分支(Merge Branch):将其他分支的修改合并到当前分支。
    git checkout <target-branch>
    git merge <source-branch>
    

3、常用 Git 命令

  • 初始化仓库git init
  • 克隆仓库git clone <repository-url>
  • 查看状态git status
  • 查看历史记录git log
  • 创建分支git branch <branch-name>
  • 切换分支git checkout <branch-name>
  • 合并分支git merge <branch-name>
  • 查看分支git branch
  • 删除分支git branch -d <branch-name>
  • 推送到远程仓库git push origin <branch-name>
  • 从远程仓库拉取更新git pull origin <branch-name>

4、熟悉 Git 代码托管服务

  1. GitHub:全球最流行的代码托管平台,提供代码托管、协作、代码审查等功能。
  2. GitLab:提供类似于GitHub的功能,支持私有仓库和CI/CD。
  3. Bitbucket:另一个流行的代码托管服务,支持Git和Mercurial。

5、使用 IntelliJ IDEA 操作 Git

  1. 安装和设置 Git

    • 确保已安装Git并配置环境变量。
    • 在IDEA中,进入 File > Settings > Version Control > Git,设置Git可执行文件路径。
  2. 克隆仓库

    • 打开 IDEA,选择 VCS > Get from Version Control
    • 输入仓库URL,选择本地目录,然后点击 Clone
  3. 创建和切换分支

    • 在右下角分支栏点击当前分支,选择 New Branch 创建新分支。
    • 要切换分支,选择 Checkout.
  4. 提交更改

    • 修改文件后,右键点击文件或选择 VCS > Git > Commit
    • 输入提交信息,点击 Commit
  5. 推送和拉取

    • 提交后选择 VCS > Git > Push 推送到远程仓库。
    • 选择 VCS > Git > Pull 从远程仓库拉取更新。

通过这些步骤,你可以高效地使用Git和IntelliJ IDEA进行版本控制和团队协作。

相关文章:

【Git】分布式版本控制工具

一、简介 二、目标 Git分布式版本控制工具 一、简介 Git是一种分布式版本控制系统&#xff0c;用于跟踪和管理源代码的变化。它由林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;于2005年开发&#xff0c;并迅速成为最流行的版本控制工具之一。以下是关于Git的一些关键…...

排序之插入排序----直接插入排序和希尔排序(1)

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 排序之插入排序----直接插入排序和希尔排序(1) 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记&#xff0c;欢迎大家在评论区交流讨…...

快速创建条形热力图

Excel中的条件格式可以有效的凸显数据特征&#xff0c;如下图中B列所示。 现在需要使用图表展现热力条形图&#xff0c;如下图所示。由于颜色有多个过渡色&#xff0c;因此手工逐个设置数据条的颜色&#xff0c;基本上是不可能完成的任务&#xff0c;使用VBA代码可以快速创建这…...

go switch 与 interface

go switch 与 interface 前言 前言 github.com/google/cel-go/common/types/ref type Val interface {// ConvertToNative converts the Value to a native Go struct according to the// reflected type description, or error if the conversion is not feasible.ConvertTo…...

BaseMapper 接口介绍

基于 mybatis-mapper/provider 核心部分实现的基础的增删改查操作&#xff0c;提供了一个核心的 io.mybatis.mapper.BaseMapper 接口和一个 预定义 的 io.mybatis.mapper.Mapper 接口&#xff0c;BaseMapper 接口定义如下&#xff1a; /*** 基础 Mapper 方法&#xff0c;可以在…...

HAL-Cubemax定时器使用记录

title: HAL-Cubemax定时器使用记录 tags: STM32HalCubemax 文章目录 HAL-Cubemax定时器使用记录分享一种思路1.创建一个ms(毫秒)级延时中断2.创建计数的变量3.在需要延时的函数中对变量阈值进行判断4.验证实例--完整使用记录代码 问题往期内容基础库HAL cubemax VSCODE GCC …...

同时使用磁吸充电器和Lightning时,iPhone充电速度会变快吗?

在智能手机的世界里&#xff0c;续航能力一直是用户关注的焦点。苹果公司以其创新的MagSafe技术和传统的Lightning接口&#xff0c;为iPhone用户提供了多样化的充电解决方案。 然而&#xff0c;当这两种技术同时使用时&#xff0c;它们能否带来更快的充电速度&#xff1f;本文…...

零成本搭建个人图床服务器

前言 图床服务器是一种用于存储和管理图片的服务器&#xff0c;可以给我们提供将图片上传后能外部访问浏览的服务。这样我们在写文章时插入的说明图片&#xff0c;就可以集中放到图床里&#xff0c;既方便多平台文章发布&#xff0c;又能统一管理和备份。 当然下面通过在 Git…...

SpringBoot 搭建sftp服务 实现远程上传和下载文件

maven依赖&#xff1a; <dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version> </dependency>application.yml sftp:protocol: sftphost: port: 22username: rootpassword: sp…...

IDEA中使用leetcode 刷题

目录 1.IDEA下载leetcode插件 2.侧边点开插件 3.打开网页版登录找到cookie复制 4.回到IDEA登录 5.刷题 6.共勉 1.IDEA下载leetcode插件 2.侧边点开插件 3.打开网页版登录找到cookie复制 4.回到IDEA登录 5.刷题 6.共勉 算法题来了不畏惧&#xff0c; 挑战前行是成长的舞台…...

华为海思CPU解读

安全可靠CPU测评结果&#xff08;华为海思篇&#xff09; 中国信息安全测评中心于2024年5月20日发布安全可靠测评结果公告&#xff08;2024年第1号&#xff09;&#xff0c;公布依据《安全可靠测评工作指南&#xff08;试行&#xff09;》的测评结果&#xff0c;自发布起有效期…...

中介子方程三十三

XXFXXuXXWXXuXXdXXrXXαXXuXpXXdXXpXuXXαXXrXXdXXuXWXπXXWXeXyXeXbXπXpXXNXXqXeXXrXXαXXuXpXXdXXpXuXXαXXrXXeXqXXNXXpXπXbXeXyXeXWXXπXWXuXXdXXrXXαXXuXpXXdXXpXuXXαXXrXXdXXuXXWXXuXXFXXEXXyXXEXXrXXαXXuXpXXdXXpXuXXαXXrXXEXXyXXαXiXXαXiXrXkXtXyXXpXVXXdXuXWX…...

今年哪两个行业可能有贝塔?

银行和综合板块存在比较明显的行业贝塔&#xff0c;背后原因是&#xff1a;银行板块中&#xff0c;最小的几家银行市值也不小&#xff1b;综合板块中&#xff0c;最大的几家市值也不大。 一、今年哪两个行业可能有贝塔&#xff1f; 我们一直强调今年市场呈现出【行业弱beta、风…...

嵌入式软件开发工具使用介绍

软件开发工具 辅助开发工具 硬件工具与仪器设备 逻辑分析仪使用 串口数据解码分析 示波器使用 1.示波器简介 TBS 1052B&#xff08;Tektronix&#xff09;系列数字存储示波器在紧凑的设计中提供了经济的性能。 由于多种标配功能&#xff0c; 包括 USB 连接、34 种自动测量、…...

【TB作品】MSP430G2553,单片机,口袋板, 交通灯控制系统

题8 交通灯控制系统 十字路口交通灯由红、绿两色LED显示器&#xff08;两位8段LED显示器&#xff09;组成&#xff0c;LED显示器显示切换倒计时&#xff0c;以秒为单位&#xff0c;每秒更新一次&#xff1b;为确保安全&#xff0c;绿LED计数到0转红&#xff0c;经5秒延时&#…...

windows 安装 Kubernetes(k8s)

windows 安装 docker 详情见&#xff1a; https://blog.csdn.net/sinat_32502451/article/details/133026301 minikube Minikube 是一种轻量级的Kubernetes 实现&#xff0c;可在本地计算机上创建VM 并部署仅包含一个节点的简单集群。 下载地址&#xff1a;https://github.…...

C语言 | Leetcode C语言题解之第189题轮转数组

题目&#xff1a; 题解&#xff1a; void swap(int* a, int* b) {int t *a;*a *b, *b t; }void reverse(int* nums, int start, int end) {while (start < end) {swap(&nums[start], &nums[end]);start 1;end - 1;} }void rotate(int* nums, int numsSize, int…...

【安全审核】音视频审核开通以及计费相关

融云控制台音视频审核入口&#xff1a;音视频审核 1 音视频审核文档&#xff1a;融云开发者文档 1 提示&#xff1a; 开发环境&#xff1a; 免费体验 7 天&#xff08;含 21 万分钟音频流和 420 万张视频审核用量&#xff09;&#xff0c;免费额度用尽后&#xff0c;将关停服务…...

【实战】Spring Cloud Stream 3.1+整合Kafka

文章目录 前言新版版本优势实战演示增加maven依赖增加applicaiton.yaml配置新增Kafka通道消费者新增发送消息的接口 实战测试postman发送一个正常的消息postman发送异常消息 前言 之前我们已经整合过Spring Cloud Stream 3.0版本与Kafka、RabbitMQ中间件&#xff0c;简直不要太…...

java之可变字符串之append方法

可变字符串如果要添加内容&#xff0c;需要用到append方法 语法格式如下 sbf.append(obj) 其中sbf是任意的可变字符串 obj是任意数据类型的对象 这个方法是将任意数据转换成字符串&#xff0c;然后添加到此序列中 public class Buffer {public static void main(String[]…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...