我们在写代码的时候,肯定不是总一帆风顺的。
自己的作品肯定要经过一个版本,一个版本的迭代。
但是这个过程中有个问题就是,有时你会发现你迭代之后的版本还没有你之前写的那个版本好。
所以为了避免出现这个问题,我们都会在每个版本完成后,都做一个备份。
就像我们在玩单机游戏打BOSS之前,都会先存好档,方便打不过的时候,可以随时返回到原来的状态,再徐徐图之。
但是如果这个备份只是简单的在电脑上复制一个文件夹的话,那么如果有很多版本就意味着要复制很多个文件夹,那你想想这要多少的空间来存储??
正所谓有需求就有服务。
git就是将这样的一个备份的过程程序化了。它会自动复制你的代码,让你可以随时回退到任何一个版本。
Q:那我要怎样使用git?
A:在使用git 之前,我们先要在命令行配置好git。
1:请按照顺序依次运行下面6行代码。
注意:下面的英文名和邮箱可以跟你的GitHub没有关系,自己任意取个名字也可以。
git config --global user.name 你的英文名
git config --global user.email 你的邮箱
git config --global push.default simple
git config --global core.quotepath false
git config --global core.editor "code --wait"
git config --global core.autocrlf input
运行完这六行之后,我们就可以来使用git了。
Step1:
使用cd 指令到达你想要备份的文件夹。运行 git init 命令。
这个命令的作用是用来初始化一个本地仓库,它会在你的当前文件夹生成一个 .git/ 隐藏文件。我们以后每个版本的作品,都是放在了 .git/ 这个文件夹里。
Step2:
选择你要提交的文件:
我们就可以使用 git add index.html .将这个文件添加到待提交的状态。add 后面可以是相对路径也可以是绝对路径。
当我们运行了上面的指令之后,我们就可以在VsCode里面看见,index.html 后面有个图标A,即表示added :被添加了。
Q:如果我的文件夹里有些隐私不想提交上去该怎么办?
A:在你当前文件夹,创建一个 .gitignore 文件。 然后在这个文件里面写上你不想提交的文件的文件名。这样这些文件就永远不会被提交了。除非你自己主动在 .gitignore 里删掉了那个文件名。
Q:那我上面运行了git add 之后,我怎么到命令行里查看我的文件是否没添加成功呢?
A:我们可以运行 git status 来查看。
Step3:
上面只是设置哪些文件需要被提交,但是还并未真正的提交。
Q:那我要怎么才能真正的提交呢?
A:需运行 git commit -m xxx 这个命令。
xxx表示的就是你提交的理由,就相当于给自己这次的提交做个标记,方便我以后回顾我为啥提交。
除了这样的一个命令之外,在上面运行了git add 添加的代码之后,正式提交的指令还可以用: git commit -v
运行了这个命令之后,会自动跳转到VsCode并自动打开一个文件。这个文件里面详细的描述了,你所提交的文件具体是改了哪些地方。
然后你就可以在第一行写下自己详细的提交原因。写好之后,保存,关掉这个文件。就提交成功。
这个方法相比于第一种 git commit -m xxx 的好处在于,它能够写更多,更详细的理由。
而且还能够看到详细的代码改变。
当然到底选那种就看个人的需要了。
注意:你每次对这个文件进行改变并想提交的时候,你都要运行git add xxx 来添加。
没有例外。
Q:那我提交了这么多次,我要怎么看我到底提交了哪些版本呢?
A:我们可以用 git log 来查看自己的提交历史。
Q:那我用使用上面的命令提交了那么多次之后,那岂不是就会有很多个版本的文件,这是不是就会造成空间占用很大呀?
A:git会对你提交的文件重复利用,如果你一个提交的文件里和之前的版本有重复,那么重复的数据只会保存一次!!!!
Q:那前面说git是为了方便我们随时进行版本切换,那我到底要怎么切换版本呢?
A:进行版本跳转的时候,我们就要使用到命令: git reset --hard xxx
xxx:代表的是你的提交号的前六位,其实也不一定要前六位,主要你输入的几位能够唯一的表示一个版本就行。。
Q:那我要怎么查看我提交的版本号呢?
A:还是用到我们前面所讲到的 git log :查看我的提交历史。
运行了这个指令之后,会跳出来你提交过的版本。
每个版本的第一行,都有这样的一行提交号
我这里只截了前6个数字。
那我们就可以复制这前6个数字,然后调用 git reset --hard xxx
用你复制好的提交号替换 xxx ,然后按下Enter运行。
那么你的代码就会回溯到你的提交号所代表的版本了。
不过这个回溯的代码有个问题。
比如你回溯到了版本N的状态,然后当你再使用 git log 的时候,就会发现,它显示出来的提交记录,截止到 N 就没有了。
也就是说,N以后的那些提交记录因为我们的一次回溯,而不再显示了。
Q:如果我想再回去回溯之前的那个状态,那可怎么办?
A:我们可以用 git reflog :
这个代码就能看到从最开始到现在,你的版本的变迁历史。
也就是你提交的每个版本,你的版本之前的跳转,都被记录的清清楚楚。
那我们就可以使用这个方法来获取到每一行最开始的提交号, 然后使用 git reset --hard来跳转。