Git学习手记7:版本回退

上一节《Git学习手记6:用Git管理文件》

继续修改LearnGit.py文件,并用git status命令检测Git仓库状态,如下。LearnGit.py文件有被修改,但修改尚未提交。

Git学习手记7:版本回退_第1张图片

用命令:

$ git add LearnGit.py

$ git commit -m "add an addition funciton: c = a + b"

提交修改

查看修改历史

读者可能还记得,Git学习手记6:用Git管理文件 中,已经提交过了修改了。实际工作中,修改会提交成千上万次,要知道提交了哪些修改,可以用命令:

$ git log 查看当前分支的历史版本 (Lists version history for the current branch)

Git学习手记7:版本回退_第2张图片

用命令

$ git log --follow [file] 查看指定文件的历史版本(Lists version history for a file, including renames)

Git学习手记7:版本回退_第3张图片

查阅修改历史及相关信息,还是在GUI里面方便,推荐大家下载Git GUI Client。我个人比较喜欢强大好用的SourceTree

Git学习手记7:版本回退_第4张图片

在Source GUI里面,可以方面的看到历史版本的各种信息;每提交一个新版本,Git就会把它们自动串成一条时间线;

bd8a... 这大串数是一个SHA1计算出来的commit id;之所以用这么复杂的数字来表示commit id,是为了方便多人在同一个版本库里工作时,commit id不会冲突。中括号里面的7位数字是缩略版的commit id,用于git 命令的[commit]参数

强制退到某一个版本,使用命令:

$ git reset --hard [commit id]

Git学习手记7:版本回退_第5张图片

可以看到,代码已经退回到 “add a msg”这个版本

“add an addition funciton: c = a + b”已经不见了

注意注意注意:git reset --hard 强制恢复到先前某一个版本这个命令非常霸道,一旦执行,被删掉的部分很难再找回来!

撤回提交,到某一个[commit],用命令:

$ git reset [commit]

Undoes all commits after [commit], preserving changes locally

Git学习手记7:版本回退_第6张图片
Git学习手记7:版本回退_第7张图片

用命令:

$ git add LearnGit.py

$ git commit -m "add a msg"

提交修改

Git学习手记7:版本回退_第8张图片

小技巧,用命令

$ git reflog 可以查看到git的命令执行历史

Git学习手记7:版本回退_第9张图片
git reflog

总结:

HEAD指向的版本就是当前版本,使用命令git reset --hard [commit id] 可以强制切换到某个commit版本

用Git GUI Client,可以方便查阅commit id,若没有安装SourceTree,则可以:

    1,用git log查看提交历史,以便确定要回退到之前的哪个版本,

    2,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

下一节《Git学习手记8:工作区、版本库和暂存区》

你可能感兴趣的:(Git学习手记7:版本回退)