Git基本命令与使用自查

基本概念

什么是git

Git 是一款分布式版本控制系统(DVCS),是用于管理文件(尤其是代码)修改记录、追踪版本迭代、支持多人协作的开源工具。

核心特性:

  1. 分布式:每个开发者本地都有完整的代码仓库(包含所有版本记录),无需依赖中央服务器即可完成大部分操作(提交、分支、回滚等),离线也能工作;
  2. 版本追踪:精准记录文件的每一次修改(谁改、改了什么、什么时候改),支持随时回滚到任意历史版本;
  3. 分支管理:可轻松创建分支(比如开发新功能、修复 Bug 单独开分支),分支间独立开发,完成后再合并,避免代码冲突;
  4. 跨平台:支持 Windows、Mac、Linux,可通过命令行或图形化工具(如 SourceTree、GitKraken)操作。

简单说:Git 是本地管理代码版本的工具,不依赖任何云端平台也能独立使用。

Git 记录修改的方式:直接记录快照,而不是差异比较。

每当提交更新或在 Git 中保存项目状态时,它就会针对当时项目的全部文件制作一个快照, 保存快照的索引。如果文件没有修改,Git 就不重新存储该文件,只保留一个链接指向之前存储的文件。 Git 对待数据类似于快照流。

Git 三种状态:

  • 已提交(committed):修改已经保存在本地代码仓库中。
  • 已修改(modified):修改了文件,但还没保存到代码仓库中。
  • 已暂存(staged):对一个已修改文件的当前版本做标记,使它包含在下次提交的快照中。

所以 Git 项目一般有三个工作区域:Git 代码仓库、工作目录、暂存区域。

Git 和 GitHub 的关系?

GitHub 是一个基于 Git 的云端代码托管平台,核心是为 Git 仓库提供远程存储服务。

Git GitHub
本质 版本控制工具(软件 / 命令集) 基于 Git 的云端服务平台(网站)
运行位置 本地电脑 / 私有服务器 云端服务器
核心功能 管理代码版本、分支、提交 托管 Git 仓库、协作、分享、开源
依赖关系 可完全独立使用(无需 GitHub) 核心功能依赖 Git 实现

关于 Github 的使用,请参考:

https://blog.csdn.net/m0_57787115/article/details/130296388https://blog.csdn.net/m0_57787115/article/details/130296388

入门指令

一、本地仓库提交

生成 SSH Key 并添加到 Github 等平台后,就要配置 Git 身份(提交记录会关联该信息),--global 表示全局生效(所有仓库共用),去掉则仅当前仓库生效。

下面是一个最简单的 git 工作流程常用命令:

bash 复制代码
# 首先 cd 到工作目录
# 1.初始化 git 仓库
git init  
 
# 2.配置个人信息(配一次即可)
# 配置个人信息,双引号要用英文的
git config user.name "你的名字"
git config user.email "你的邮箱"
# 配置个人信息,全局配置
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

# 3.检查状态(可选)
# 查看工作区文件状态(未跟踪 / 已修改 / 暂存),推荐加 -s 简化输出:git status -s
git status
# 查看工作区未暂存的修改内容
git diff

# 4.添加
# 把文件的变化添加到暂存区
# .是当前文件夹下所有 也可以指定推送某个文件 git add 文件名
git add .
git add <文件名>      

# 5.提交
# 把暂存区的文件,提交到仓库(备注必填)
git commit -m  "提交备注" 

核心流程:初始化(配置个人信息) -> 添加文件进入暂存区 -> 提交文件到本地仓库

二、查看状态与回滚

bash 复制代码
# 查看提交历史(按时间倒序)
git log

# 回滚到指定版本(清空工作区 / 暂存区,慎用)
git reset --hard <提交ID>

# 回滚到指定版本(保留工作区 / 暂存区修改)
git reset --soft <提交ID>

# 撤销指定提交(生成新提交,适合已推送的版本)
git revert <提交ID>

三、与远程仓库协作

本地仓库的过程,在头尾加上拉取远程代码和推送远程代码的过程:

克隆远程仓库 / 拉取代码 -> 添加文件进入暂存区 -> 提交文件到本地仓库 -> 推送本地分支到远程仓库

bash 复制代码
# 查看远程仓库的别名和地址
git remote -v

# 1.克隆远程仓库到本地(含所有版本记录)
# 例如:git clone https://github.com/xxx/xxx.git
git clone <远程仓库地址>

# 2.拉取远程分支代码并合并到本地(= fetch + merge)
# 指定分支为 main:git pull origin main
git pull <远程别名> <分支名>

# 3.推送本地分支到远程仓库
# 例如:git push origin main
git push <远程别名> <本地分支>
相关推荐
sunshine22 girl2 小时前
git tag-项目流程
git
imDwAaY16 小时前
6篇文章讲清楚Git:Git 远程协作:fetch、pull、push 到底有什么区别?(3/6)
git·后端
imDwAaY16 小时前
6篇文章讲清楚Git:Git 撤销与恢复:reset、revert、restore 应该怎么选?(4/6)
git
用户733096461230916 小时前
再也不怕手滑丢代码!给 git 高危操作加一层安全校验
git
广白17 小时前
Git Tag 实战:从出包追溯到版本发布
前端·git·面试
Winlifes6 天前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
郑州光合科技余经理7 天前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
我命由我123457 天前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
Lcr3s7 天前
Git基础之(0):如何在Ubuntu(Linux)上安装git
git
玄芯散人8 天前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作