Git使用指南
发布时间:
Git使用指南
Git使用指南
1. 介绍
1.1 基本信息
Git(读音为/gɪt/) 是一款开源的分布式版本控制系统,由 Linux 之父 Linus Torvalds 于 2005 年创建,最初用于管理 Linux 内核源码。
- Git 的核心作用是记录文件的变化历史,使开发者可以:
- 追踪代码的每一次修改
- 回滚到任意历史版本
- 支持多人协作开发
与传统的集中式版本控制系统(如 SVN)不同,Git 采用分布式架构,每个开发者本地都拥有完整的代码仓库和历史记录,因此可以在离线状态下完成大部分操作。
目前 Git 已成为软件开发领域的事实标准,广泛应用于各类项目管理与协作开发中。
- 👉 官方网站:https://git-scm.com/
1.2 核心特性
- 分布式架构 每个开发者都拥有完整仓库副本,可离线工作,提高可靠性并避免单点故障。
- 高性能 本地操作(如提交、查看历史)速度极快,适合大型项目。
- 数据完整性 Git 使用哈希(SHA-1)来标识每个版本,确保数据不被篡改。
- 强大的分支机制 分支创建和切换成本极低,支持并行开发(feature / bugfix / release)。
- 良好的协作能力 支持多人协作开发,配合 GitHub / GitLab 等平台效果更佳。
- 跨平台支持 支持 Windows、macOS、Linux。
1.3 工作方式

- workspace: 工作区域,平时存放项目代码的地方。
- Index/Stage:暂存区域,用于临时存放代码改动,事实上只是一个文件,保存即将提交的文件列表信息。
- Repository:Git本地仓库,用于安全存放数据,这里有提交的所有版本的数据。其中,HEAD 指向最新放入仓库的版本。
- Remote:Git远程仓库,如GitHub、Gitee等。
Git 管理的文件有三种状态:已修改(modified)、已暂存(staged)和已提交(committed),分别对应workspace、index、repository
git add:工作区 → 暂存区
git commit:暂存区 → 本地仓库
git push:本地仓库 → 远程仓库
1.4 Git原理
2. 常用命令
2.1 本地操作
| 命令 | 功能 |
|---|---|
| git init | 初始化仓库 |
| git status | 查看当前仓库状态 |
| git log | 查看提交历史 |
| git config | 配置信息 |
| git add . | 添加所有更改到暂存区 |
| git add <file> | 添加指定文件到暂存区 |
| git commit -m “提交描述” | 将暂存区文件添加到本地仓库 |
通过以下命令,即可创建一个仓库并提交文件:
1. 初始化仓库
git init
2. 配置用户信息(Git 首次安装必须设置一下用户签名,否则无法提交代码。之后无需再次配置)
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
- 签名的作用是区分不同操作者身份,用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
- 这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系
3. 添加更改到暂存区
git add <filename> # 添加指定文件到暂存区
git add . # 添加所有更改到暂存区
4. 将暂存区文件提交至仓库
git commit -m "提交描述" # 提交暂存区的文件快照到本地仓库
- 使用命令git add
,可反复多次使用,添加多个文件至暂存区;最后在使用命令git commit -m 一次性提交至本地仓库。
2.2 远程操作
| 命令 | 功能 |
|---|---|
| git remote add origin <repo_url> | 关联远程仓库 |
| git pull origin <branch-name> | 拉取远程更新并合并 |
| git push origin <branch-name> | 推送本地分支到远程 |
| git push -u origin <branch-name> | 推送并设置 upstream(后续可直接 git push) |
| git clone <repo_url> | 克隆远程仓库 |
克隆并创建分支
git clone <远程仓库地址> -b <分支名> # 会在当前目录下创建一个目录
拉取远程仓库的变化(GitHub->本地)
git pull origin <分支名> # 表示将代码从远程仓库的<分支名>分支,拉取到本地仓库
- 分支名默认为master 或 main
- origin 为本地仓库指向远程仓库的指针
推送到远程仓库(本地->GitHub)
git push origin <分支名> # 表示将代码从本地仓库推送到远程仓库的<分支名>分支
2.3 Git分支模型
| 命令 | 功能 |
|---|---|
| git branch | 查看本地分支 |
| git branch -r | 查看远程分支 |
| git branch -a | 查看所有分支(本地 + 远程) |
| git branch 新分支名 | 创建新分支(不会切换) |
| git checkout -b 新分支名 / git switch -c 新分支名 | 创建并切换新分支 |
| git checkout 分支名 / git switch 分支名 | 切换分支 |
| git branch -d 分支名 | 删除本地分支(已合并) |
| git branch -D 分支名 | 强制删除本地分支(未合并) |
| git push origin –delete 分支名 | 删除远程分支 |
| git branch -m 旧分支名 新分支名 | 重命名分支 |
| git merge 分支名 | 合并分支(用于将一个分支的更改合并到当前分支) |
创建远程分支的方法
方法1. 本地创建分支并推送到远程
git branch v0 # 创建 v0 分支
git switch v0 # 切换到新分支(或使用 `git checkout v0`)
git push -u origin v0
-u的作用是建立“追踪关系”。以后在v0上只需输入git push或git pull,Git 就知道对应远程的哪个分支。
方法2. 直接在 GitHub 上创建分支
打开 GitHub 仓库,进入 "Branches" 选项卡
点击 "New Branch",输入分支名称(如 feature-xyz)
创建成功后,本地同步该分支:
git fetch origin
git switch feature-xyz # 切换到远程新分支
git pull origin feature-xyz # 确保本地最新
2.4 代理
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
3. 场景示例
3.1 本地项目首次推送到远程仓库(初始化流程)
1. 初始化本地仓库
cd E:
mkdir my_repository
cd E:/my_repository
git init
2. 在GitHub创建一个新的仓库
打开 GitHub 仓库,创建新的仓库
创建成功后,本地同步:
git remote add origin <远程仓库地址>
(例如: https://github.com/your-username/your-repository-name.git Https方式
git@github.com/your-username/your-repository-name.git SSH方式)
git branch -M main # 创建main分支
- origin 为本地仓库指向远程仓库的指针, git remote add origin <远程仓库地址>即将origin变量与远程仓库地址进行链接远程仓库地址>
- main或master为远程仓库的分支名称
- main和master其实是一样的,git前期默认分支名为master,后期默认分支名改为main(因为master有sm的含义)
3. 本地仓库文件管理
git add .
git commit -m "提交描述" # -m 参数不可省略
4. 将本地仓库推送到GitHub仓库
git push origin main
5. 更新本地文件后,需重复3和4操作完成远程同步
3.2 从远程仓库克隆项目到本地
git clone <远程仓库地址>
3.3 本地修改提交并推送到远程仓库
git add .
git commit -m "提交描述" # -m 参数不可省略
git push origin main
3.4 从远程仓库拉取更新到本地
git pull origin main
3.5 将当前main分支的代码保存一份到新的v0分支
做法:先在本地创建并切换到 v0,然后再推送到远程。
- 创建并切换到
v0分支git checkout -b v0- 这条命令会以当前的
main代码为基准,创建一个一模一样的v0分支并跳过去。
- 这条命令会以当前的
- 将 v0 推送到 GitHub到云端:
git push -u origin v0
-u的作用是建立“追踪关系”。以后在v0上只需输入git push或git pull,Git 就知道对应远程的哪个分支。
- 切回 main 继续开发
git checkout main