GIT基本命令
1. 创建仓库命令–git init
git init
可以把当前目录变成git可以管理的仓库,git的命令只能操作仓库的文件。
2. git仓库的结构
一个仓库包含了三个分区,工作区、暂存区(stage)、分支,我们在工作区修改文件。
3. git add 文件名
当我们在工作区修改了文件后,使用git add 文件名
即可将文件的修改提交到暂存区。
git add readme.txt
4. git commit -m “说明信息”
使用git commit
命令可以将暂存区的内容提交的分支。
5. git status
git status
可以查看文件的状态,即显示文件在工作区是否被修改过,或者文件是否被add到暂存区。
文件在工作区被修改,并且还未提交到暂存区:
5. git diff 文件名
git diff
命令是现实当前文件内容与原文件内容的区别,如果暂存区有修改提交则与暂存区的提交进行比较,如果暂存区没有提交则与上一次的commit版本进行比较。
初始文本内容:
1.修改工作区文件后执行git diff
命令
执行命令后显示新添加的文本***new message***
2. 提交到暂存区后执行git diff
命令
工作区的内容与暂存区的内容一致所以不打印信息。
3. 再次修改工作区问文件,然后执行git diff
命令
可以看到比较的是工作区的内容和暂存区的内容。
结论:暂存区为空与上一次commit比较,暂存区不为空与暂存区的内容进行比较。
6. git log
git log
查看日志信息
其中信息包含了commit的id号,这些id号可以用来修改HEAD指针所指向的版本,说白了就是每次commit记录的唯一标识,其中还会显示我们使用git commit -m "提交说明"
命令指定的提交说明信息,如图中的first commit readme.txt
。
7. git reflog
git reflog
命令可以查看每一次HEAD指针修改的记录
这也是获取commit 的Id的一种方式,它这里的Id号是没有写全的,但是已经足够确定commit的id了。
8. 恢复版本
恢复版本即是修改HEAD的指针。
方式一,使用git reset --hard HEAD^
。
其中:
- HEAD:表示上一个版本,HEAD^表示上两个版本
- HEAD~100:表示上100个版本。
方式二,使用git reset --hard id
。
可以通过git log
或者git reflog
查到需要恢复版本的id号。
9. 恢复工作区
第一种情况:只修改了工作区,为提交到暂存区。
使用命令git checkout -- 文件名
,如果暂存区存在提交的数据则命令不生效,其实这里是用版本库里面的版本替换工作区的版本,无论是修改还是删除都可以还原,但是这个命令不能删除提交到暂存区的数据。
第二种情况:修改了工作区,然后提交到了暂存区。
- 先使用
git reset HEAD 文件名
撤销文件在暂存区的提交 - 然后在使用
git checkout -- 文件名
恢复工作区数据
10. 删除文件
从版本库中删除文件,而不是从本地删除文件。
git rm 文件名
git commit -m "xxxx"
如果本地误删了文件,则可以从版本库中恢复
git checkout -- 文件名