版本库(repository)也叫仓库,可以看做一个目录,这个目录里的所以文件都由Git进行管理,每个文件的修改、删除,Git都能跟踪。从狂神那扒拉一张图片
最基础的操作
git init 把这个目录变成Git可以管理的仓库:
添加并提交一个readme.txt文件 git add// git commit
修改了提交后的readme.txt文件,使用 git status 查看仓库当前的状态
查看上次是怎么修改readme.txt 文件 git diff
接着再 git add//git commit
查看版本
继续对 readme.txt 文件进行修改,再add,commit.
目前为止,readme.txt 文件一共有三个版本被提交到了 Git 仓库里,我们可以用 git log --pretty=oneline 命令进行查看
回退版本
readme.txt 文件退回到上一个版本,就可以使用 git reset 命令:git reset --hard HEAD^ //HEAD表示当前版本,则HEAD^表示上一个版本,那么上上版本就是HEAD^^
查看文件内容并切换版本
cat 命令查看一下 readme.txt 的内容:
现在又想要回到最新的版本 git reset --hard 1094a //这里不能用HEAD而必须使用 commit id
隐藏目录 .git 是 Git 的版本库。
版本库里面的 index(stage) 文件叫暂存区,还有Git为我们自动创建的第一个分支 master ,以及指向 master 的一个指针叫做 HEAD。
二次修改情况
我们对 readme.txt 文件进行修改,然后添加 git add readme.txt。
然后再修改readme.txt 文件,接着提交。发现第二次修改并没有被提交。因为git commit 命令只负责把暂存区的修改提交了。
撤销修改3种情况
(1) 没有 git add 之前
手动删除,手动把文件恢复到上一个版本的状态。然后再用 git checkout -- file 命令丢弃工作区的修改//git checkout -- readme.txt
(2) git add了,但没有git commit
git reset HEAD file 命令把把暂存区的修改撤销掉,重新放回工作区
git reset HEAD readme.txt //git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区,HEAD表示最新版本。
(3) 既 git add 了,也 git commit 了
可以回退到上一个版本,见回退版本内容。
删除已提交的文件
新建一个 test.txt 文件,并添加和提交到Git: rm test.txt删除文件.接着分俩种情况
(1)确实要删除该文件
$ git rm test.txt
$ git commit -m "remove test.txt"
(2)删错了,也好恢复,因为这时版本库里有
git checkout -- test.txt
侯非侯,王非王,千乘万骑走北芒。
长城和长安之间,是无尽的彷徨。
唯有燃烧在长城的篝火,让我放下野望
屠魔的少年终究成魔,存活最后的魔做了救世主
这是最好的时代,这是最坏的时代,我们一无所有,我们巍然矗立
长城之上是千亿的星空,星空之上是不灭的守望
血肉之躯,燃烧一次足矣
这里是为我所统率的战场
这里是,让我忘却野心的战场



