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

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.xdnf.cn/news/515683.html

相关文章:

  • 区间带边权并查集,XY4060泄露的测试点
  • elementplus menu 设置 activeindex
  • GO语言语法---For循环、break、continue
  • 计算机组成与体系结构:Snooping-Based Protocols(监听式协议)
  • STM32 OTA 中断向量表重定向
  • Unity3D仿星露谷物语开发45之收集农作物特效
  • 第四天的尝试
  • 【网络】Wireshark练习3 analyse DNS||ICMP and response message
  • 2021ICPC四川省赛个人补题ABDHKLM
  • DeepSeek本地部署全攻略:从零搭建到Web可视化及数据训练
  • AM32电调学习解读八:无感驱动相位波形解析
  • STK手动建链+matlab联调
  • 小麦病害分割数据集labelme格式1882张4类别
  • BGP策略实验练习
  • 学习日志10 java
  • ubuntu中已经存在python3.12.3, 如何安装python3.10.8且命令python3版本切换为python3.10.8
  • MySQL之储存引擎和视图
  • 访问共享打印机提示错误0x00000709多种解决方法(支持win10和win11)
  • minicom串口调试助手
  • 顺 序 表:数 据 存 储 的 “ 有 序 阵 地 ”
  • 禾本科植物胚乳的发育
  • 从c++到python
  • 能力验证及大练兵活动第一期
  • Ansible模块——文件属性查看,文件或目录创建和属性修改
  • 外观数列 --- 模拟
  • 【JAVA】HashMap深度剖析:哈希冲突与扩容机制(25)
  • Debezium快照事件监听器系统设计
  • esp32课设记录(一)按键的短按、长按与双击
  • TYUT-企业级开发教程-第三章
  • leetcode hot100刷题日记——1.两数之和