Git 指令
1.创建版本库及查看文件的区别改动
1.git add xxx.php
将文件装载进git,这个文件必须是在仓库下,如果不在就会报错博客01
2.git status
用来查看运行结果,可以实时查看仓库状态
3.git commit -m "文本"
将文件提交到仓库 文本是每次你提交的时候要干的事情,这样下次查看就比较方便。
4.git status
用来查看运行结果,可以实时查看仓库状态
5.git diff XXX.php
将区别展示出来
6.再提交之前最好status一下这样能看到有啥不同。git status可以实时掌握工作区的状态。如果你看到不确定的可以用 git diff xxx.php
来查看。
2.版本回退
1.历史版本太多了我们就使用git log
来查看版本信息,这些版本信息会从最近到远来呈现,中间显示的东西就是我们之前git commit -m "描述的文本信息"
中的描述的文本信息来辅助我们看到版本修改了什么
2.回滚:git reset --hard commit_id
这个commit_id
就是上一段中git log
中的版本id,不用全写上,写前几个让他可以识别的号就可以了,特殊的有git reset --hard HEAD^
是可回滚到上一个ID的,
3.回滚后反悔了:git reflog
会记录你的每一次命令这样就算你关了git Bash照样可以找到你需要的commit_id
。
回滚速度快的原理: git在内部有个指向当前版本的HEAD指针,你的回滚就是把HEAD指针指到了你所告诉他的版本,顺便把你的工作区给更新了。
**向git版本库里加文件的原理:**第一步是用git add
将文件添加到暂存区;第二步git commit
就是将暂存区的所有内容添加到了当前分支(master),这个master是我们在创建版本库的时候,git为我们创建的。
**工作区:**工作区就是电脑里能看到的目录,比方说本地的learngit那个文件夹
**版本库:**隐藏文件.git
**缓存区:**在版本库中(stage或者叫index),相当于临时停车的地方,等你都操作完了,在让你过去。
3.修改
最终被传到MASTER区的版本是commit之前的stage(index)里面的所有文件,所以可以不会要着急add,最终一起提交commit.
4.撤销修改
1.当修改过后的内容只是放在工作区没有被git add
的时候就可以使用git checkout --file
,它可以丢弃工作区的修改。
eg:git checkout --readme.txt
可以将内容回到上一次git commit的时候或者git add的时候
2.当修改过后的内容被git add到了暂存区的时候,可以用git reset HEAD<file>
将暂存区的修改撤销掉(unstage),重新放回工作区。
3.当修改过后的内容从缓存区被commit到了MASTER上,就参照版本回滚就ok辣。
4.当MASTER提交推送到了远程版本库,那你就88了