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

Git基础原理和使用

Git 初识

一、版本管理痛点
在日常工作和学习中,我们经常遇到以下问题:
- 通过不断复制文件来保存历史版本(如报告-v1、报告-最终版等)
- 版本数量增多后无法清晰记住每个版本的修改内容
- 项目代码管理存在同样问题

二、版本控制系统解决方案
1. 核心功能:
- 记录文件修改历史
- 支持版本回溯
- 便于多人协作
2. 主流工具:Git
3. 文件支持:
- 完美支持文本文件(代码、文档等)
- 有限支持二进制文件(图片、视频等)

三、Git 安装指南
1. CentOS 系统:
```bash
# 检查是否安装
git

# 安装命令
sudo yum -y install git

# 验证安装
git --version
```

2. Ubuntu 系统:
```bash
# 检查是否安装
git

# 安装命令
sudo apt-get install git -y

# 验证安装
git --version
```

四、Git 基础配置
1. 设置用户信息:
```bash
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
```

2. 查看配置信息:
```bash
git config -l
```

3. 删除配置:
```bash
git config --global --unset user.name
git config --global --unset user.email
```

五、核心概念解析
1. 工作区:实际操作的目录
2. 暂存区(Stage):临时存放改动的区域
3. 版本库(Repository):永久存储版本信息的.git目录

六、仓库管理
1. 创建本地仓库:
```bash
mkdir gitcode
cd gitcode
git init
```

2. 仓库结构:
- 生成隐藏的.git目录
- 禁止手动修改.git内部文件

七、分支管理
1. 分支原理:
- 类似平行宇宙概念
- 默认主分支:master/main
- HEAD指针指向当前分支

2. 分支操作:
```bash
# 创建分支
git branch dev

# 切换分支
git checkout dev

# 查看分支
git branch

# 合并分支(需先切换至主分支)
git checkout master
git merge dev
```

3. 合并原理:
- Fast-forward(快进式合并)
- 保留完整版本历史记录

八、最佳实践建议
1. 提交规范:
- 使用有意义的提交信息
- 保持原子性提交(每次提交一个功能/修复)

2. 分支策略:
- master/main分支保持稳定
- 开发使用feature分支
- 使用pull request进行代码审查

3. 日常维护:
- 定期执行git status查看状态
- 使用.gitignore管理不需要版本控制的文件
- 及时处理合并冲突

http://www.lryc.cn/news/2379327.html

相关文章:

  • 实现视频分片上传 OSS
  • 网络I/O学习(一)
  • 4:OpenCV—保存图像
  • Selenium-Java版(css表达式)
  • 产品更新丨谷云科技 iPaaS 集成平台 V7.5 版本发布
  • 深度学习让鱼与熊掌兼得
  • TDuckX 2.6 正式发布|API 能力开放,核心表单逻辑重构,多项实用功能上线。
  • LeetCode Hot100刷题——除自身以外数组的乘积
  • JAVA EE(进阶)_进阶的开端
  • PDF批量合并拆分+加水印转换 编辑 加密 OCR 识别
  • Go语言交替打印问题及多种实现方法
  • ArcGIS Pro调用多期历史影像
  • 10.11 LangGraph多角色Agent开发实战:生产级AI系统架构与性能优化全解析
  • 组态王|组态王中如何添加西门子1200设备
  • 发布时将多个bpl 打包成一个bpl的方法,或者说:不需要vcl60.bpl情况下 18.5K的exe 照常可以运行。
  • 6.2.2邻接表法-图的存储
  • C++23 放宽范围适配器以允许仅移动类型(P2494R2)
  • 【技海登峰】Kafka漫谈系列(十一)SpringBoot整合Kafka之消费者Consumer
  • Spring Boot三层架构设计模式
  • 在Java中调用Ant命令
  • WebRTC技术下的EasyRTC音视频实时通话SDK,助力车载通信打造安全高效的智能出行体验
  • 数据科学和机器学习的“看家兵器”——pandas模块 之二
  • 本地部署Firecrawl+Dify调用踩坑记录
  • MySQL--day2--基本的select语句
  • 什么是dom?作用是什么
  • Trae - 国人Cursor的免费平替产品
  • 自动化:批量文件重命名
  • Jsoup库和Apache HttpClient库有什么区别?
  • 学习!FastAPI
  • Linux 安装 Unreal Engine