Git使用指南

3 分钟阅读时长

发布时间:

Git使用指南

Git使用指南

1. 介绍

1.1 基本信息

  • Git(读音为/gɪt/) 是一款开源的‌分布式版本控制系统‌,由 Linux 之父 Linus Torvalds 于 2005 年创建,最初用于管理 Linux 内核源码。

  • Git 的核心作用是记录文件的变化历史,使开发者可以:
    • 追踪代码的每一次修改
    • 回滚到任意历史版本
    • 支持多人协作开发
  • 与传统的集中式版本控制系统(如 SVN)不同,Git 采用分布式架构,每个开发者本地都拥有完整的代码仓库和历史记录,因此可以在离线状态下完成大部分操作。

  • 目前 Git 已成为软件开发领域的事实标准,广泛应用于各类项目管理与协作开发中。

  • 👉 官方网站:https://git-scm.com/

1.2 核心特性

  1. 分布式架构 每个开发者都拥有完整仓库副本,可离线工作,提高可靠性并避免单点故障。
  2. 高性能 本地操作(如提交、查看历史)速度极快,适合大型项目。
  3. 数据完整性 Git 使用哈希(SHA-1)来标识每个版本,确保数据不被篡改。
  4. 强大的分支机制 分支创建和切换成本极低,支持并行开发(feature / bugfix / release)。
  5. 良好的协作能力 支持多人协作开发,配合 GitHub / GitLab 等平台效果更佳。
  6. 跨平台支持 支持 Windows、macOS、Linux。

1.3 工作方式

Git区的划分

  • 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原理

参考链接:Git原理解析 参考链接: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 pushgit 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,然后再推送到远程。

  1. 创建并切换到 v0 分支
    git checkout -b v0
    
    • 这条命令会以当前的 main 代码为基准,创建一个一模一样的 v0 分支并跳过去。
  2. 将 v0 推送到 GitHub到云端:
git push -u origin v0
  • -u 的作用是建立“追踪关系”。以后在 v0 上只需输入 git pushgit pull,Git 就知道对应远程的哪个分支。
  1. 切回 main 继续开发
git checkout main

标签: