医院网站建设的好处,长沙仿站模板网站建设,宁波网站建设公司在哪里,wordpress主题php破解现在#xff0c;你已经学会了修改文件#xff0c;然后把修改提交到Git版本库#xff0c;现在#xff0c;再练习一次#xff0c;修改readme.txt文件如下#xff1a;
i am gblfy
i am yuxin然后#xff0c;【工作区】-【暂存区】-【本地仓库】尝试提交#xff1a; 修改…现在你已经学会了修改文件然后把修改提交到Git版本库现在再练习一次修改readme.txt文件如下
i am gblfy
i am yuxin然后【工作区】-【暂存区】-【本地仓库】尝试提交 修改readme.txt内容如下
i am gblfy
i am yuxin
i am gz提交到本地仓库【工作区】-【暂存区】-【本地仓库】尝试提交 版本1第1次提交
i am gblfy版本2第2次提交
i am yuxin版本3第3次提交
i am gz版本控制系统肯定有某个命令可以告诉我们历史记录在Git中我们用git log命令查看 git loggit log命令显示从最近到最远的提交日志我们可以看到3次提交最近的一次是第3次提交上一次是第2次提交最早的一次是第1次提交。
如果嫌输出信息太多看得眼花缭乱的可以试试加上--prettyoneline参数
git log --prettyoneline每提交一个新版本实际上Git就会把它们自动串成一条时间线。如果使用可视化工具查看Git历史就可以更清楚地看到提交历史的时间线
好了现在我们启动时光穿梭机准备把readme.txt回退到上一个版本也就是第2次提交的那个版本怎么做呢
首先Git必须知道当前版本是哪个版本在Git中用HEAD表示当前版本也就是最新的提交7ff6778…注意我的提交ID和你的肯定不一样上一个版本就是HEAD^上上一个版本就是HEAD^^当然往上100个版本写100个^比较容易数不过来所以写成HEAD~100。
现在我们要把当前版本第3次提交回退到上一个版本第2次提交就可以使用git reset命令
git reset --hard HEAD^--hard参数有啥意义这个后面再讲现在你先放心使用。
看看readme.txt的内容是不是版本第2次提交
cat readme.txt果然被还原了。
还可以继续回退到上一个版本第1次提交不过且慢然我们用git log再看看现在版本库的状态
git log最新的那个版本第3次提交已经看不到了好比你从21世纪坐时光穿梭机来到了19世纪想再回去已经回不去了肿么办
办法其实还是有的只要上面的命令行窗口还没有被关掉你就可以顺着往上找啊找啊找到那个第3次提交的commit id是7ff6778...于是就可以指定回到未来的某个版本 git reset --hard 7ff6778e版本号没必要写全前几位就可以了Git会自动去找。当然也不能只写前一两位因为Git可能会找到多个版本号就无法确定是哪一个了。
再小心翼翼地看看readme.txt的内容
cat readme.txt果然我胡汉三又回来了。
Git的版本回退速度非常快因为Git在内部有个指向当前版本的HEAD指针当你回退版本的时候Git仅仅是把HEAD从指向第3次提交
┌────┐
│HEAD│
└────┘│└── ○ 第3次提交│○ 第2次提交│○ 第1次提交改为指向第2次提交
┌────┐
│HEAD│
└────┘││ ○ 第3次提交│ │└── ○ 第2次提交│○ 第1次提交然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号你就把当前版本定位在哪。
现在你回退到了某个版本关掉了电脑第二天早上就后悔了想恢复到新版本怎么办找不到新版本的commit id怎么办
在Git中总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到第2次提交版本时再想恢复到第3次提交就必须找到第3次提交的commit id。Git提供了一个命令git reflog用来记录你的每一次命令 git reflog终于舒了口气从输出可知第3次提交的commit id是7ff6778现在你又可以乘坐时光机回到未来了。 小结 现在总结一下
HEAD指向的版本就是当前版本因此Git允许我们在版本的历史之间穿梭使用命令git reset --hard commit_id。
穿梭前用git log可以查看提交历史以便确定要回退到哪个版本。
要重返未来用git reflog查看命令历史以便确定要回到未来的哪个版本。