Git基础概念与本地使用
定义
Git 是一个分布式版本控制系统,用于跟踪文件变化、管理项目历史,并支持多人协作开发。
作用
- 让开发者可以随时回溯历史,恢复任意版本。
 - 支持分支开发,极大提升团队协作效率。
 - 本地和远程仓库分离,离线也能管理代码。
 - 代码变更有据可查,便于追踪和审计。
 
例子
安装
Windows
- 访问 https://git-scm.com/download/win 下载并安装。
 
macOS
brew install git
Linux
# Ubuntu/Debian
sudo apt-get install git
# CentOS/RHEL
sudo yum install git
配置
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --list
初始化与克隆
git init  # 初始化新仓库
git clone <repository-url>  # 克隆远程仓库
基本操作
git status  # 查看状态
git add <file>  # 添加文件到暂存区
git add .  # 添加所有文件
git commit -m "提交说明"  # 提交更改
git log  # 查看历史
分支与合并
git branch <branch-name>  # 创建分支
git checkout <branch-name>  # 切换分支
git checkout -b <branch-name>  # 创建并切换
git merge <branch-name>  # 合并分支
撤销与回退
git checkout -- <file>  # 撤销工作区修改
git reset HEAD <file>  # 撤销暂存区修改
git reset --soft HEAD^  # 回退但保留修改
git reset --hard HEAD^  # 回退并删除修改
图表说明
graph TD
    subgraph Git核心结构
        workspace[工作区]
        staging[暂存区]
        local[本地仓库]
        remote[远程仓库]
    end
    workspace -->|git add| staging
    staging -->|git commit| local
    local -->|git push| remote
    remote -->|git pull| local
    local -->|git checkout| workspace
graph TD
    master[master]
    f1[feature1]
    f2[feature2]
    master --> f1
    master --> f2
    f1 -->|merge| master
    f2 -->|merge| master
详细说明
- 分布式架构:每个开发者本地都有完整仓库,支持离线操作。
 - 分支管理:可同时进行多个功能开发,互不干扰。
 - 暂存区机制:允许分阶段提交,灵活管理变更。
 - 常用命令速查表:
 
| 操作类型 | 命令 | 说明 | 
|---|---|---|
| 初始化 | git init | 
创建新仓库 | 
| 克隆 | git clone | 
克隆远程仓库 | 
| 状态 | git status | 
查看仓库状态 | 
| 添加 | git add | 
添加文件到暂存区 | 
| 提交 | git commit | 
提交更改 | 
| 分支 | git branch | 
管理分支 | 
| 合并 | git merge | 
合并分支 | 
| 撤销 | git reset | 
撤销操作 | 
推演说明
- 典型开发流程:
 git clone克隆项目git checkout -b feature新建功能分支- 修改代码,
git add、git commit提交 git merge合并到主分支- 
git push推送到远程仓库 - 
冲突解决流程:
 - 拉取最新代码,发生冲突
 - 手动编辑冲突文件
 git add标记已解决git commit提交
注意事项
- 提交信息要简明清晰,便于追踪。
 - 功能开发请务必使用分支,避免主分支混乱。
 - 合并前建议先拉取远程主分支,减少冲突。
 - 
git reset --hard会丢失本地未保存的更改,谨慎使用。Gitは、分散型のバージョン管理システムであり、複数人での開発や履歴管理を効率的に行うことができます。分岐や統合も簡単にでき、現代ソフトウェア開発に不可欠なツールです。