git的使用
- cd到zpgit目录内,执行
git init
,执行完成后会在当前目录内生成一个隐藏目录.git
- 设置用户名:
git config --global user.name "username"
- 设置邮箱:
git config --global user.email "123456@qq.com"
- 在仓库目录内创建一个sunck.txt文本,并在文本内写入"sunck is a good man"
- 执行
git add sunck.txt
把文件添加到仓库 - 执行
git commit -m "第一次提交"
把文件提交到仓库,引号内的内容为此次提交文件的注释,方便将来查询本次提交都修改了什么
git status
可以查看仓库当前的状态
- 此时修改sunck.txt文本内的内容为"sunck is a nice man"
- 然后再执行
git status
会提示sunck.txt文件有修改
- 可以执行
git diff
查看哪里发生了改变,红色字体是原始仓库内文本的内容,绿色字体是当前文本的内容
-此时可再次执行git add sunck.txt
与git commit -m "第二次提交"
把当前修改后的文本提交至仓库
- 此时再执行
git status
发现没有提示两个文件不一致的信息了
- 执行
git log
可以查看提交日志,记录着每次提交的编号/用户/邮箱/以及备注,一般情况下备注里写当前提交增加了哪些功能,方便后期查看
- 也可以执行
git log --pretty=oneline
只查看每次提交的编号和备注
- 当提交过好几个版本后,发现后面提交的版本没什么意义,想要回退到之前提交的某一个版本的代码,可执行
git reset --herd HEAD^
,回到上一次提交的版本,发现txt文本里的内容变成了上次提交时的状态.
- 想回到上上次的版本可执行
git reset --hard HEAD^^
,回退到上100个版本可执行git reset --hard HEAD~100
- 也可以根据具体的版本号回到指定版本
git reset --hard c77581bb99596edb1bd63a7de9b7024dfd7cbce1
这个版本号也可以只写前几位字符,一般不会出现两个版本号前几位字符重复的情况. - 查看历史命令记录
git reflog
,查看所有命令的历史记录 - 工作区/缓存区/版本库图解
- 如果sunck.txt文件修改后发现写错了,这时还没有执行
git add sunck.txt
,那么可以执行git checkout -- sunck.txt
命令,这时sunck.txt文件就会回到和当前版本库一模一样的状态. - 如果sunck.txt文件执行了
git add sunck.txt
命令,也就是已经添加到缓存区了,但还没有执行git commit -m "第四次提交"
语句,此时修改了sunck.txt文件,也就是现在工作区/缓存区/版本库的sunck.txt文件都不一样,再执行git checkout -- sunck.txt
命令,sunck.txt会回到缓存区的状态,也就是执行了git add sunck.txt
时的状态.总之就是让文件回到最后一次执行git add
或git commit
时的状态