$ mkdir file //在当前目录创建文件夹file
$ cd file //加入file
$ pwd //显示当前位置
$ git init //使变成Git可以管理的仓库
会发现当前目录下多了一个.git
的目录,这个目录是Git来跟踪管理版本库的,不要改它,不然会把Git仓库给破坏了。
如果你没有看到.git
目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看见。
Git只能跟踪文本文件。图片,视频,Microsoft word等二进制文件无法跟踪,只是知道文件大小的改变,Windows自带的记事本也不要用,它的每个文件开头都被添加了十六进制的字符,可能给你带来一些不可预测的错误。
$ls -ah //显示隐藏的目录
编写一个file1文件….然后添加
$git add file1.txt //先添加文件,在暂存区,可以一次性添加多个,空格隔开
$git commit -m "备注1" //再备注,两步缺一不可,commit可以多次add后输,把文件提交master分支,
此时修改file1,…..a
$git status //查看当前状态
#modified:file1.txt //它提示你文件修改了
$git diff file1.txt //查看不同之处
它显示了哪里被你修改
-....
+....a
修改之后想要提交,也是跟第一次提交一样
$git add file1.txt
$git commit -m "注释2"
$git log //查看历史记录
$git log --pretty=oneline //或者用这个
将显示从最近到最远的历史记录,包括版本id,修改的作者,时间,备注
$cat file1.txt //查看file内容
head 当前版本
head^ 上个版本
head^^ 上上个版本
head~5 往前5个版本
$git reset --hard head^ //回到上个版本
$git reset --hard xxxxx //或者(版本号commit id前几位就够了) 回到版本号对应版本
$git reflog //查看历史命令,可以获取commit id
我们编辑的是工作区,然后add到暂存区stage,最后commit到master分支,当前版本HEAD指向master
$git checkout -- file1.txt //丢弃工作区的修改
$git reset head file //把暂存区的文件撤销(unstage)到工作区
而如果你修改后不但add了还commit了,但你还没有把本地版本库推送到远程(比如github),那你可以回退版本,但是你就丢失了你刚才文件里修改的内容了
$git reset --hard HEAD^
$rm file1.txt //从工作区删除文件,版本区没有变化
$git checkout -- file1.txt //此时可以重新拿回文件,只要版本区有
checkout
其实就是用当前版本替换工作区的版本,所以就能实现上面两个功能
$git rm file1.txt //第一步
$git commit -m "注释" //第二步,从版本库删除文件,以确保和工作区一致