git的4个区
-
工作区(Working Area) 相当于工作空间的目录,即代码的存放位置
-
暂存区(Stage) 也称为
index,用来跟踪已暂存文件,一般存在.git下的index文件,所以有时也称暂存区为索引。 -
本地仓库(Local Repository)
-
远程仓库(Remote Repository)
git文件的5种状态
- 未修改(Origin)
- 已修改(Modified)
- 已暂存(Staged)
- 已提交(Committed)
- 已推送(Pushed)

- 工作区中文件的初始状态是
未修改,当我们修改文件后,其状态变为已修改,git diff命令可以查看已修改但未暂存的文件。(git diff后输入q可以退出) - 通过
git add命令可以把已修改的文件添加到暂存区,git diff --cached可以查看已暂存但未提交的文件。 - 通过
git commit将代码提交到本地仓库,git diff [本地分支] [远程分支]可以查看已提交本地,但未推送到远程分支的文件。 - 通过
git push命令将本地分支推送到远程分支。
回退相关命令
git reset 命令
git reset 是进行回退的具体命令,参数介绍如下
--soft: 仅仅将头指针恢复,已经 add 的暂存区及工作空间的文件修改不变。--mixed: 将头指针恢复,已经 add 的暂存区也会恢复 ,工作空间的代码修改不变。--hard: 头指针、暂存区和工作空间的修改都会恢复。
git log 命令
git log 命令查看git的提交记录,但无法查看已经删除的记录。
git reflog 命令
git reflog 命令可以查看所有分支的所有操作记录(包括commit和已被删除的commit记录)
回退操作
回退操作命令
- 将已修改或暂存但未提交的文件回退:
git reset --hard - 将已提交未推送的版本回退:
git reset --hard origin/master - 将已提交且推送的版本回退:
- 回退到某个版本:
git reset --hard <版本号> - 将回退的版本强制推送到远程仓库:
git push -f
- 回退到某个版本:
--hard可以替换为其他恢复等级,一般使用--soft,这样修改的内容不会丢失
版本号可以使用 git log 或 git reflog 查看,如 git reset --hard 811aesfi8
git reset --hard <版本号> 也可以替换为 git reset --hard HEAD
- 回退到当前版本:
git reset --hard HEAD - 回退到上一个版本:
git reset --hard HEAD^ - 回退到上两个版本:
git reset --hard HEAD^^ - 回退到上三个版本:
git reset --hard HEAD^^^ - 回退到上十个版本:
git reset --hard HEAD~10
git 远程覆盖本地
可以执行如下命令将远程仓库的代码直接覆盖本地仓库
- git fetch –all
- git reset –hard origin/main
- git pull
git fetch是下载远程仓库的内容,不做任务的合并
git reset把HEAD指向刚刚下载的最新版本
参考:
https://blog.csdn.net/qing040513/article/details/109150075 https://blog.csdn.net/gercke/article/details/119085963