初始化仓库
- 首先创建gitcode文件夹
- 我们将此文件夹初始化为本地仓库
// ./gitcode
git init
初始化完成后,当前文件夹下会有一个文件夹.git,因为此文件夹是隐藏文件夹,用ls命令查看时,需要加上-a。
.git文件夹的主要作用是:用来追踪管理仓库,尽量不要动下面的文件。
使用tree命令时,我们需要下载tree工具包。
yum install tree -y
配置本地仓库
- 可以使用git config命令配置本地仓库
- 配置名称
git config user.mane "<name>"
git config --unset user.mane //删除<name>配置
- 配置邮箱
git config user.email "<email_name>"
git config --unset user.email //删除<email>配置
- 查看配置项
git config -l
- 当在此命令选择 <–global>选项时,表示配置项生成于本机器所有仓库,且在重置此项配置项时,也必须加上<–global>选项。
git config --global user.mane "<name>"
git config --reset user.mane //无法重置<name>
git config --global --unset user.mane
仓库管理
- 当我们在仓库下面新建一个文件(test),此时.git并不能管理test文件。
- 想要理解,我们还得了解仓库的结构,如下图所示
- 对象库:版本管理的实现关键,修改的工作区内容会写入对象库的一个新的git对象中。
- add:将修改(新增、修改、删除)的内容放入暂存区中
- commit:将暂存区的内容提交到master分支下
git add test
git add . //所有修改全部放入到暂存区
git commit -m "提交的细节"
git log //打印日志
git log --prety==oneline //每条日志只输出一行
- 查看.git目录
HEAD
cat .git/HEAD
git cat-file -p <commit_ID>
添加文件
先add,后commit。
git add <filename>
git commit -m " 细节"
修改文件
git status //查看当前那个文件是否被修改
git diff <file_name> //显示工作区与暂存区的差异
版本回退
- v1:test文件下面只有Hello git
v2:test文件下面有Hello git &Hello world
想要从v1回退到v2。
git reset <--soft>/<--mixed>/<--hard> <commit_ID>
- soft:只回退版本库
- mixed:回退版本库以及暂存区
- hard:全部回退
工作区 | 暂存区 | 版本区 | 选项 |
---|---|---|---|
Hello git&&Hello world | Hello git&&Hello world | Hello git | –soft |
Hello git&&Hello world | Hello world | Hello git | –mixed |
Hello world | Hello world | Hello git | –hard |
- 后悔药
只要更找到commit_ID,就可以回到某一版本。
撤销修改
情况一:只存在工作区(没有add)
- 方法一:
手动修改:但是当修改的内容过多时,你已经不知道自己修改的是什么了,回不去了。 - 方法二:
git chechout -- <file_name> //工作区回退到最后一次add时
//“--”非常重要
情况二:已经加入到暂存区(add)
- 方法一:
git reset --mixed <file_name>
- 回退到情况一:再使用
git chechout -- <file_name>
- 方法二:
git reset --hard HEAD
情况三:已经提交到版本库(add,commit)
- 前提条件:commit之后没有push,
push:将本地仓库推送到远程仓库
git reset --hard HEAD^
删除文件
- 方法一:
三步走:
rm <file_name> //只删除工作区
git add
fit commit -m "提交细节" //提交到本地仓库
- 方法二:
使用git命令,两步走:
git rm <file_name> //工作区、暂存区、版本库都被删除
git commit -m "提交细节"