每天对自己多问几个为什么,总是有着想象不到的收获。 一个菜鸟小白的成长之路(copyer)
1、git个人配置信息
//配置邮箱
git config --global user.email "xxx@xxx.com"
//配置用户名
git config --global user.name "xxx"
//查看配置信息
git config --list
2、git对项目进行管理的基本步骤
-
进入要管理的文件夹
-
执行初始化命令
git init
-
查看管理目录下的文件状态
git status //注:新增的文件和修改过后的文件都是红色
-
管理指定的文件(红变绿)
git add 文件名 git add .
-
生成版本
git commit -m '描述信息' //注:-m 是message的缩写
-
查看版本记录
git log
3、git的四大区域
工作区
: 平时写代码的地方
暂存区
:用于临时存放的改动。事实上它只是一个文件,保存即将要提交到文件列表信息。(.git/index
)中,有时候也称为索引
本地仓库
: 本地存放版本的地方,其中HEAD 指向最新放入仓库的版本
远程仓库
: 托管代码的服务器(gitee、github、gitlab)用于远程数据的交换
之间转化的示意图
4、版本回滚
-
假设我们提交了两个版本
git commit -m '第一提交' git commit -m '第二次提交'
-
查看版本号
git log
把
第二次提交
回滚到第一提交
-
回滚到版本为
第一提交
git reset --hard 版本号 //根据版本号,回退当前版本
-
再次使用
git log
,就发现HEAD
已经指向第一提交
版本了
如果又想要回退
第二次提交
- 步骤一
git reflog
//查看版本号
可以查看到所有的版本号
以及回滚的版本号
- 步骤二
git reset --hard 版本号
git reset
的参数区别
--soft
: 仅仅移动当前head的指针,不会改变工作区和暂存区的内容
--mixed
: 是reset的默认参数,移动指针,改变暂存区里面的内容,但是不会改变工作区
--hard
: 当前指针head ,暂存区 工作区 都会改变
5、不同情况下的文件回滚
-
情况一:还没执行git add
git checkout . // 使用 暂存区里面的内容 覆盖 工作区里面的内容
-
情况二:已经提交到暂存区(git add),但是没有提交到本地仓库( git commit)
git reset --hard //改变所以指针,暂存区,工作区内容
-
情况三: 以及git commit,但是没有 git push
git reset --hard origin/master //从远程仓库把代码取回来,然后覆盖本地仓库、本地暂存区和工作区