浅谈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

原创粉丝点击