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 <远程别名> <本地分支>
相关推荐
梅梅绵绵冰9 小时前
Git分支管理
git
ys~~10 小时前
git学习
git·vscode·python·深度学习·学习·nlp·github
Rysxt_14 小时前
IDEA中Git隐藏更改(Stash)功能详解教程
数据库·git·intellij-idea·stash
Mr-Apple15 小时前
记录一次git commit --amend的误操作
大数据·git·elasticsearch
UVM_ERROR16 小时前
Git仓库损坏(Segmentation fault)修复实战:虚拟机环境下UVM项目救援指南
笔记·git·vscode·github·芯片
j_xxx404_17 小时前
Linux:版本控制器Git(第一章)|历史|理解Git|相关git操作|提交冲突解决
linux·运维·git·ai
牛奔18 小时前
git本地提交后,解决push被拒绝 error: failed to push some refs to
大数据·git·elasticsearch·搜索引擎·全文检索
少年姜太公1 天前
什么?还不知道git cherry pick?
前端·javascript·git
MatrixOrigin1 天前
在数据库里玩“平行宇宙”:MatrixOne Data Branch 让数据也拥有Git 的分支/合并/对比/回滚(含跨集群同步)
git·sql·数据分析
VcB之殇1 天前
git常用操作合集
前端·git