有了以上的思路,我们可以有如下操作:
1# 将版本库中的paper.txt文件删除掉,需要执行commit才会生效2git rm -f paper.txt
3git commit -m "delete the paper.txt"
4
5# 将工作区中的paper.txt文件恢复
6git checkout -- paper.txt
对于文件的删除,需要注意的是,只有提交到版本库的文件,才能进行恢复,对于为提交到版本库的文件是无法进行恢复的。
四、本地项目远程提交到Github仓库Taoye在之前参加2019年腾讯微信小程序比赛的时候,开发了一个关于侦探推理的项目。Taoye现在想要将该项目从本地提交到Github,该如何实现呢?
我们在实现该需求之前,首先需要将本地与Github进行联通。对此我们应该通过ssh在本地生成一个公钥,然后在Github中配置该公钥。操作如下:
1# 1、生成公钥,执行之后会在.ssh目录中生成秘钥文件,其中id_rsa.pub表示的是公钥2cd ~/.ssh
3ssh-keygen -t rsa 26647879@qq.com
4# 2、进入github,settings -> SSH keys -> add key,然后将id_rsa.put中的公钥复制进去
5# 3、配置好公钥之后,需要验证本地与github的连通性
6ssh -T git@github.com
在确认本地与Github联通之后,我们就能正常地将项目从本地远程提交到Github中了。
登录Github,创建一个目标仓库,取名为detective,用来存储我们的项目,并复制其中的.git链接地址
在Github创建仓库之后,需要将该远程仓库与本地关联起来
1# 在本地关联目标仓库,方便之后将项目推送至该远程仓库2git remote add origin https://XXXXXX.git
进入我们的本地项目,然后初始化为git可管理的仓库
1cd detective2git init
将工作区中项目的所有文件添加至暂存区
1git add ./*2
将暂存区中的内容提交到版本库当中
1git commit -m "commit the detective project" ./*将项目添加到版本库之后,我们就可以将该项目推送至远程仓库了
1# 第一次推送2git push -u origin master
3# 推送之后,如果我们的项目发生了修改,我们可以不用在使用-u参数进行推送
4git push origin master
5
6# 另外,如果有需要的话,我们还可以使用clone命令将远程仓库克隆到本地
7git clone https://XXXXXX.git
五、Git的分支管理
分支是Git当中一个非常重要的概念,分支有点类似于树枝,也就意味着为了避免影响主线的正常开发,我们可以将任务从主线中分离开来,从而形成一个分支,之后的任务都是在分支中来完成的,当任务完成之后,就可以将完整的任务从分支提交到主线。
在前面版本回退一节当中,我们知道,每一次的提交都会产生一个版本,多次提交自然也就会产生多个版本。我们可以将每一个版本看做是一个珠子,而多个版本就会通过一条线串联起来,从而形成一条版本链。这个版本链其实就是一个master分支,也就是我们上面所说的主线,我们每一次的提交都是基于master分支来完成的,而HEAD指针则是用来指向当前分支(在没有其他分支的前提下,就是指向master)。
下面的图文讲解分支的内容,来自廖大大的教程:https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424
一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:
每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。