浅谈Git(三)
来源:互联网 发布:爱普生mp288清零软件 编辑:程序博客网 时间:2024/06/12 22:21
1、版本回退
每当文件修改到一定程度时,可以保存一个快照,在Git中被称为commit。一旦把文件改乱了,或误删了文件,可以从最近的一个commit恢复,然后继续工作,避免工作成果全部丢失。
查看提交历史,以便确定要回退到哪个版本:
git log
加上--pretty=oneline参数可以简化输出格式,输出到一行:
git log --pretty=oneline
git log输出的一大串40位数是commit id(版本号),是一个SHA1计算出来的一个非常大的数字,用十六进制表示。
在Git中,HEAD表示当前版本,上一个版本是HEAD^,上上一个版本是HEAD^^,上n个版是HEAD~n。
回退到历史某个版本:
git reset --hard HEAD^git reset --hard cb926e7
注意:cb926e7是commit id的前7位
命令历史,以便确定要回到未来的哪个版本:
git reflog
回到未来某个版本:
git reset --hard ea34578
2、工作区和暂存区
工作区:本地电脑里存放文件的目录。
Git的版本库:工作区的隐藏目录.git。
暂存区:版本库中的stage。
把文件添加到Git仓库,即文件改动先放到暂存区,然后一次性提交暂存区的所有改动。分两步执行:
① git add把文件添加到暂存区;
② git commit把暂存区的所有内容提交到当前分支。创建Git版本库时,Git自动创建第一个master分支,git commit往master分支上提交改动。
注意:Git管理的是改动,git add命令将在工作区的改动放入暂存区,准备提交,由于git commit只负责把暂存区的改动提交,因此,若某次改动没有通过git add命令放入暂存区,那么git commit不会提交该次修改。
3、撤销修改:
丢弃工作区的改动(让文件回到最近一次git commit或git add时的状态):
git checkout -- myCode.txt
两种情况:
① 文件改动后还没有被放到暂存区,撤销修改后文件回到和版本库一模一样的状态;
② 文件改动后已经添加到暂存区,撤销修改后回到添加到暂存区后的状态。
注意:--不能省略,没有--,表示切换到另一个分支。
命令git reset HEAD myCode.txt可以撤销暂存区的修改,重新放回工作区。
也即,git reset命令既可以回退版本,也可以撤销暂存区的修改回退到工作区。
4、删除文件
工作区删除文件:
rm myCode.txt
工作区删除文件后,有两个选择:
① 从版本库中删除该文件
git rm myCode.txtgit commit -m "remove myCode.txt"
② 把误删的文件恢复到最新版本
git checkout -- myCode.txt
- 浅谈Git(三)
- 浅谈Git(一)
- 浅谈Git(二)
- 浅谈Git(四)
- 浅谈-----多线程(三)
- JDBC浅谈(三)
- 浅谈SVM(三)
- 浅谈git
- 浅谈git
- 浅谈Git
- 浅谈git
- 浅谈Git
- 浅谈GIT
- Git历险记(三)
- git使用(三)
- (三)Git 生命周期
- Git全过程(三)
- Git学习(三)
- Spring 源码粘贴3
- APP开发完整流程
- rabbitmq network partitions
- Swift 学习资料
- http首部参考
- 浅谈Git(三)
- 熵的理解
- 命令模式【Command Pattern】
- 链路层帧格式
- 软编码Flv 到Mp4 容器(十一) fmp4 moof box详解
- 树形DP POJ3659 好难的一道题
- 深入理解分布式事务
- java.lang.reflect.UndeclaredThrowableException
- ffmpeg编码个参数的设置以及作用