- 通过
git init
命令把当前目录变成Git可以管理的仓库: - 用命令
git add
,把文件添加到仓库
$ git add 文件名
- 用命令
git commit
,把文件提交到仓库
$ git commit -m "备注"
-m后面输入的是本次提交的说明
- 要随时掌握工作区的状态,使用
git status
命令。
$ git status
- 如果git status告诉你有文件被修改过,用
git diff
可以查看修改内容。
$ git diff 文件名
-
git log
命令显示从最近到最远的提交日志(显示的信息比较多) -
git log --pretty=oneline
(显示每次提交的版本号(是一个SHA1计算出来的一个非常大的数字,用十六进制表示)) -
git reflog
用来记录每一次的命令
版本回退
在Git中,用HEAD
表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
。
- 使用
git reset
来回退版本 - 回退上一个版本
git reset --hard HEAD^
- 回退指定版本
git reset --hard 版本号(版本号可以只写前面几位,git会自动查找)
而切换版本的操作是十分快的,因为Git内部有个指向当前版本的HEAD
指针,切换版本时只是把HEAD
指针指向改变了而已。
第一步是用
git add
把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
撤销修改
-
git checkout -- file
可以丢弃工作区的修改
$ git checkout -- readme.txt
命令git checkout -- readme.txt
意思就是,把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
git checkout -- file
命令中的--很重要,没有--
,就变成了“切换到另一个分支”的命令
- 也可以使用命令
git reset HEAD <file>
可以把暂存区的修改撤销掉(unstage)
删除文件
- 现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令
git rm
删掉,并且git commit
:
$ git rm test.txt
$ git commit -m "remove test.txt"
- 还有一种情况是删除错了,这个时候可以使用
git checkout -- <filename>
,把误删的文件恢复回来。
git checkout
其实使用版本库中的版本替换工作区的版本,无论工作区是修改还是删除,都可以“还原”