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