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

Git 版本控制工具

一、版本控制工具概述

  1. Git

    • 开源免费,集成服务器与客户端功能
    • 支持分布式版本控制,适合多人协作
    • 对比 SVN:SVN 是集中式版本控制工具,且商业版收费
  2. 基于 Git 的衍生工具

    • 代码托管平台:GitHub、Gitee(提供仓库管理、协作功能)
    • 商业化 OS:基于 Linux 内核的 CentOS、Ubuntu 等

二、Git 安装与初始化配置

​1.安装 Git

yum install git          # CentOS 安装命令
git --version            # 验证安装(已安装显示版本号,未安装提示命令未找到)

2.首次使用配置

git config --global user.email "your_email@example.com"  # 设置全局邮箱(与远程仓库一致)
git config --global user.name "your_username"            # 设置全局用户名

作用:用于代码提交者身份溯源,记录操作日志。

三、Git 仓库操作流程

​1.新建仓库步骤

点击右上角 + → 新建仓库 → 填写仓库名称/描述。

关键配置项

  • 语言选择:C/C++(影响默认 .gitignore 模板)。
  • ​**.gitignore 模板**:选择语言类型(自动过滤临时文件,如 *.o*.exe)。
    • 扩展:若需自定义忽略规则,可在仓库根目录手动编辑 .gitignore(见下文)。
  • 开源许可证
    • 选择 MIT 或 Apache-2.0(宽松协议,允许商用)。
    • 作用:明确代码使用权限,避免法律风险。
  • 初始化 README:勾选后生成 README.md(中英文说明文档)。
  • 分支模型
    • 单分支(仅 master):适合个人/小型项目。
    • 多分支(如 master+dev):需勾选“分支模型初始化”。

仓库创建后结构

    默认生成文件:

  • .gitignore:过滤规则文件。
  • LICENSE:开源协议文本。
  • README.md:项目说明文档(支持 Markdown 格式)。

2.本地与远程仓库同步

克隆远程仓库到本地

git clone https://gitee.com/your_username/repo_name.git
  • 首次克隆需输入账号密码​(HTTPS 协议)。
  • 扩展:若需免密,可配置 SSH 密钥(不推荐初学阶段使用)。

本地仓库目录结构

  • .git/:隐藏文件夹,云服务器上的本地仓库,存储版本控制核心数据如下:
    • HEAD:指向当前分支。
    • objects:存储所有提交对象(代码快照)。
    • logs:记录操作历史(可用于回滚)。
    • 警告:​不要手动修改 .git 内任何文件!​

3.本地代码提交三步骤(三把斧)​

先把想上传到远端仓库的文件或目录拷贝到本地仓库:

第一把斧:添加文件到暂存区

git add .                      # 添加所有新文件/修改过的文件(`.` 表示当前目录)
git add file1.c dir/file2.h    # 添加指定文件/目录

第二把斧:提交到本地仓库

git commit -m "输入提交日志"  # 提交说明需简洁明确

第三把斧:推送到远程仓库

git push    # 推送到远程
  • 可能会提示你输入远端仓库的用户名和登录密码

四、.gitignore 配置

  • 作用:指定忽略上传的文件类型(如临时文件、编译产物)。
  • 自定义规则示例:vim .gitignore  
    *.p      # 忽略所有 .p 文件
    *.pp     # 忽略所有 .pp 文件
    build/   # 忽略 build 目录

五、其他常用命令和操作

​1.查看提交记录与状态

git log               # 查看提交历史(按时间倒序)
git status            # 查看工作区状态(红色未跟踪,绿色已暂存)

2.删除远程仓库

  • 进入 Gitee 仓库 → 管理 → 删除仓库。

3.开源项目设置

  • 仓库管理 → 基本信息 → 选择“开源”选项。

http://www.xdnf.cn/news/312.html

相关文章:

  • 每天五分钟深度学习PyTorch:0填充函数在搭建神经网络中的应用
  • Spring Boot 中基于 Reactor 的服务器端事件(SSE)推送机制实践
  • 成人大学报考-助你跨越信息鸿沟
  • Charles破解 激活码 Java
  • 美信监控易告警:功能强大
  • 变压器运输如何避免冲击损坏? 宏集ASPION G-Log2 冲击记录仪实测解析
  • C++指针(二)
  • python_level1.2
  • 使用Jasypt对配置文件内容加密
  • 布隆过滤器如何删除数据
  • C++ (菱形继承,通用接口 ,多态介绍)
  • vxe-Table 行数据过多导致列隐藏展示卡顿问题解决方案
  • C++ 20 信号量详解
  • “图生生”商品图优化升级,多元素组合效果更优!
  • 2025,常见的AI编程工具有哪些?
  • Liunx知识点
  • 微前端框架QianKun
  • Leetcode刷题 由浅入深之哈希表——349. 两个数组的交集
  • 第J4周:ResNet与DenseNet结合探索
  • 在线绘制Cell Metabolism同款多组配对连线散点图
  • 编程规范之枚举
  • poj1067 取石子游戏 威佐夫博弈
  • Vue3笔记
  • 2364. 统计坏数对的数目 之 灵活思想、学会变形
  • 大模型Rag - embedding
  • windows下安装mcp servers
  • 从零到精通:用 GoFrame 和 go-resty 优雅调用第三方 HTTP API
  • DDoS防御发展史
  • 如何快速构建跨系统的数据同步机制?
  • uni.createInnerAudioContext踩坑duration在真机环境一直为0