一.Gitee基本操作

发布于:2025-05-13 ⋅ 阅读:(7) ⋅ 点赞:(0)

一.初始化

1.git init初始化仓库

git init 用于在当前目录下初始化一个本地 Git 仓库,让这个目录开始被 Git 跟踪和管理。

生成 .git 元数据目录,从而可以开始进行提交、回退、分支管理等操作。

2.git config user.name/user.email配置本地仓库

# 设置用户名
git config user.name "你的名字"

# 设置邮箱(与 GitHub 等平台账户一致)
git config user.email "你的邮箱@example.com"

# 查看当前配置
git config -l

#删除配置
git config --unset user.name
git config --unset user.email

上面配置的是局部的本地仓库 加上--global可以设置为全局的。

# 设置全局用户名
git config --globa user.name "你的名字"

# 设置全局邮箱(与 GitHub 等平台账户一致)
git config --globa user.email "你的邮箱@example.com"

# 查看当前配置
git config -l

#删除配置
git config --globa --unset user.name
git config --globa --unset user.email

什么是局部?什么是全局?为什么?

Git 是为多个项目、多用户设计的系统,所以需要支持“不同作用范围的配置”:

作用域 说明 示例
--system 整个操作系统层面(对所有用户生效) 不常用,配置在 /etc/gitconfig
--global 当前登录用户的所有项目 常用,配置在 ~/.gitconfig
(默认) 当前 Git 项目的配置(最精确) 配置在 .git/config 文件中
你想干什么 推荐方式
所有项目都用同一个名字和邮箱 --global 设置一次即可
某个项目用不同的名字和邮箱 在项目目录下直接 git config

二.添加

1.git add把修改加入暂存区

2.git commit提交到版本库        

区域 位置名 功能说明
工作区 工作目录(Working Directory) 你正在编辑的真实文件所在位置
暂存区 stageindex 保存你“准备提交”的文件快照
版本库 .git/objects.git/HEAD 保存所有历史版本(已提交内容)
git add把代码放入暂存区  git commit把暂存区代码存入版本库

gti log查看历史提交记录

三.查看

1.git status查看当前仓库的状态

git status 是 Git 中最常用的命令之一,用于查看当前仓库的状态,特别是在你开发过程中了解哪些文件发生了变化、是否已被 add、是否有未提交的内容等

状态类别 含义说明
Untracked files 工作区中有新建但未被 Git 跟踪的文件(没被 add
Changes not staged for commit 已被修改但未 add 进暂存区
Changes to be committed add,等待 commit
nothing to commit 所有文件都已提交,仓库干净

git status -s     简洁模式(short),常用于配合脚本或快速查看

状态符号 文件路径 含义
A TCP/client.cc ✔️ 新文件,已 add 进暂存区,等待提交
M UDP/client.cc ✏️ 文件被修改,但尚未 add,还在工作区
?? TCP/server.cc 🆕 新文件,未被 Git 跟踪,没被 add
 其它状态缩写
符号 含义说明
?? Untracked(未跟踪文件)
A Added(已添加到暂存区的新文件)
M Modified(已修改)
D Deleted(删除)
R Renamed(重命名)
C Copied(复制)
AM 新文件添加后又被修改
MM add 的文件再次修改,暂存区和工作区都修改了
UD unmerged conflict:你删除了文件,但它在合并中被修改
UU 合并冲突(两边都修改)

2.git diff 查看代码变更内容

git diff 是 Git 中用于查看代码变更内容的命令,帮你对比不同版本、文件或状态的具体修改细节(逐行对比)。

git diff 工作区 和 暂存区 差异(没add的内容)

表示:工作区 和 暂存区 的差异(即你修改了但还没 add 到暂存区的内容)

后面还也加指定文件夹/文件 没有差异不会输出

git diff --cached 暂存区 和 最新提交 的差异(没push的内容)

表示:已经 git add 过的内容,和当前最新一次提交之间的差异(也就是你准备push提交的内容

当然后面也可以指明文件/文件夹

git status git diff配合使用 找到变化文件+查看具体变化
命令 用途
git status 看“哪些文件”发生了变化
git diff 看“具体改动内容是啥”
# 1. 先查看有哪些变更的文件
git status

# 2. 查看未 add 的文件改了什么
git diff

# 3. 如果 add 了,再看 add 的内容(准备 commit 的)
git diff --cached

# 4. 最后确认无误,提交
git commit -m "说明"

git status -s 发现TCP/client.cc文件add到了暂存区 还进行了修改,想看看具体改了什么就用

git diff TCP/client.cc找具体的改动

四.git reset版本回退

git reset 回退版本(会更改提交历史) 用于本地撤回提交、修改。

git reset 有三个选项

--soft

回退版本库 

--mixed (默认)

回退版本库+暂存区

--hard

回退版本库+暂存区+工作区

想做什么事情 用哪个选项 解释
✅ 只想回退提交记录,但保留已经写好的代码和 add 状态(准备重新commti提交) git reset --soft 改了 commit,但代码和暂存区内容保留
✅ 回退提交记录,并把代码从暂存区拿出来,保留在工作区(想重新 add git reset --mixed(默认) 改了 commit,撤销了 git add,但代码还在
⚠️ 提交错了、代码也不想要了,想恢复成某个版本的干净状态 git reset --hard 彻底抹除提交 + 暂存区 + 工作区,慎用!
慎用 --hard 版本库 暂存区 工作区的内容全会修改 不可恢复                                                
怎么选?
你想做什么 使用命令 解释说明
💡 只想换个提交说明,不改代码 git reset --soft HEAD^ 回退提交,保留暂存区(add)和代码,重新写 commit 信息
✏️ 不想提交当前内容,改完代码再提交 git reset HEAD^(默认是 --mixed 回退提交 + 撤销 add,代码保留在工作区,可修改再 add
完全不想要这次提交,也不想要这次改的代码了 git reset --hard HEAD^ 回退提交 + 暂存区 + 工作区全部还原,代码会丢失(⚠️危险)

git log --oneline+git reset 进行版本回退

git log --oneline (简略版)先获取提交记录 里面的提交ID(黄色部分)

git reset +要回退到的版本的提交ID (默认选项--mixed 版本库+暂存库都会回退)

后悔了怎么办?

只要有对应的版本ID 就可以返回

如果没有保存版本ID怎么办?

git relog 查看每个版本库的ID

git reflog 用来查看你所有 HEAD 指针的变动历史记录,里面会有每个版本的ID

五.撤销修改

撤销修改 我们分为三种情况 1.只在工作区 2.add到了暂存区 3.commit到了版本库

状态描述 推荐命令 简明说明
改错代码,未 add git checkout -- <文件> 恢复工作区代码为上次提交版本,最安全
改错代码,已 add

git reset <文件> && git checkout -- <文件>

先撤销暂存,再还原代码
已commit,但未 push

git reset --hard HEAD^(多个文件)或者

git reset <文件> && git checkout -- <文件> (单个文件)

回退最近一次提交,代码和提交记录都丢弃,危险操作

git checkout -- <file> 撤销该文件改动 恢复为上次 commit 的版本

git checkout -- <文件>

把工作区file文件的代码进行撤销修改。

git reset <文件> && git checkout -- <文件> 

git reset <文件> 只针对file文件 版本库 暂存区进行撤销

想撤销全部文件的话 git reset HEAD 

HEAD指向当前版本 HEAD^指向上个版本 HEAD^^上两个版本 ...

带上 --hard就是连带工作区的代码也进行修改 但不能但只对一个文件进行操作,会把所有文件进行修改。

git reset --hard HEAD^

git reset --hard HEAD^ 版本库 赞成区 工作区都回退到上个版本

因为已经commit提交到版本库了,log已经记录当前版本ID HEAD指向当前版本,撤销就是要回到上一个版本 所以是HEAD^。

六.git rm删除文件

将文件 从 Git 的版本库和暂存区中删除,并默认在工作区(磁盘)也删除该文件。

1.git rm <file> 删除指定文件

此时文件从 暂存区 和 工作区 都会被删除;

2.git commit -m "删除文件"

写入版本库 文件在版本库中也被删除

不想删除工作区的文件,怎么办?

git rm --cached <file> 工作区中文件不删除

1.git rm --cached <file>

仅在暂存区中删除 工作区中不删除

2.git commit -m "删除文件"

删除版本库中的

删除目录加 -r 选项