跳转至

Git基础概念与本地使用

定义

Git 是一个分布式版本控制系统,用于跟踪文件变化、管理项目历史,并支持多人协作开发。

作用

  • 让开发者可以随时回溯历史,恢复任意版本。
  • 支持分支开发,极大提升团队协作效率。
  • 本地和远程仓库分离,离线也能管理代码。
  • 代码变更有据可查,便于追踪和审计。

例子

安装

Windows

  1. 访问 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 addgit commit 提交
  • git merge 合并到主分支
  • git push 推送到远程仓库

  • 冲突解决流程:

  • 拉取最新代码,发生冲突
  • 手动编辑冲突文件
  • git add 标记已解决
  • git commit 提交

注意事项

  • 提交信息要简明清晰,便于追踪。
  • 功能开发请务必使用分支,避免主分支混乱。
  • 合并前建议先拉取远程主分支,减少冲突。
  • git reset --hard 会丢失本地未保存的更改,谨慎使用。

    Gitは、分散型のバージョン管理システムであり、複数人での開発や履歴管理を効率的に行うことができます。分岐や統合も簡単にでき、現代ソフトウェア開発に不可欠なツールです。