git(一)

221 阅读4分钟

开篇

实习的第三天。

leader:小陈,git学得怎么样了哈?可以考试了么?
我:应该可以,是什么样子的考试呀?
leader:实战。我说需求,你操作。简单的哈,就简单的命令。
我:好!

正文

第二天。

leader:那我们开始吧。先新建一个git仓库,这个会吧?

我:会的会的。

我打开git Bash,创建了一个文件夹test,然后在test文件夹里新建git仓库。如下图:

leader:好。接下来创建一个文件,就叫1.txt吧,随便放什么内容。先问一下,你知道git仓库里有哪些区域吗?

我:首先有个工作区,就是在我们电脑里能够看到的目录,比如我现在创建的这个test文件夹。git还有一个版本库的概念,我们调用git init命令后,它会生成一个.git文件,这个文件就是git的版本库,里面存储了很多信息,包括暂存区,还有git为我们自动创建的第一个分支master。

leader:不错。那把这个1.txt文件放到暂存区里。

我沾沾自喜,心里想还好前两天有看过。开始我接下去的操作。

leader:好。现在再创建一个文件2.txt。

leader:现在我们想提交2.txt,但还不想提交1.txt,怎么做?

我:要提交2.txt,首先2.txt要添加到暂存区中,再提交,执行git commit命令的时候会把1.txt也一起提交,所以需要把1.txt从暂存区移除。至于怎么把1.txt从暂存区移除......

我想起好像有个命令,git restore,我输入git restore 1.txt命令,又输入git status命令查看当前状态。

为什么1.txt还是在暂存区呢?我无助地看向leader。

leader(无奈地摇了摇头):看看它的提示。

哦哦,用git rm --cached < file >命令可以把文件从暂存区移除。我使用这个命令后再查看当前状态,果然,1.txt不在暂存区了。

科普: git restore < file > 是撤销工作区的修改,git restore --staged < file >和git rm --cached < file >命令一样,会把暂存区的修改撤销掉(unstage),重新放回工作区。

我继续把2.txt添加到暂存区并提交。

leader:git好的一个地方就是它有提示和帮助文档,要善于利用。好,下一个,创建一个分支,随便叫,并跳到这个分支。

嘿嘿,这个我会,我用branch命令创建了分支b,再用switch命令跳到新的分支。

leader:你这里是两步操作,如果我想一步完成呢?

我:emmm

这时,一个同事过来找leader。我赶紧查看git的帮助手册,输入git branch --help,没有找到自己想要的,又输入git switch --help,看到下面一段:

这不就是我想要的吗?我用git switch -c命令创建了一个新的分支b2。

leader(回过头来):搞定了吗?

我:嗯嗯,用git switch -c命令,-c是create,创建分支的意思。

leader:不错,那再创建一个文件3.txt吧,提交,查看下日志。

我劈里啪啦一顿操作。

leader:好,现在我们不想提交3.txt这个文件,怎么进行回滚呢?

我想起了git reset --hard命令。

leader:你这样做是什么呢?这样做是将HEAD指针指向上一个提交信息的节点,而最新提交信息的节点会丢失,如果不想让最新提交信息的节点丢失,要怎么操作呢?知道git revert吗?

我摇了摇头。

leader:git revert会还原之前的某个提交所做的更改,并且会创建一个新的提交信息节点。我发给你本书,《Pro Git》,你回去看看,里面还有Git的原理,也要看看。首先是要熟悉基本的命令,然后理解git的原理,想想它为什么要这么设计。打好扎实的基础,这对你未来的发展是很重要的。

我:好的好的,谢谢leader。

leader:哎不用,今天考试不通过啊。

我:呜呜,那还要补考吗?(内心os:叫你不好好学习,叫你不好好学习,被发现菜了吧)

结尾

今天的故事就到这里,关于git的知识,有待下回分解。

感谢大家阅读!如果有错误的地方欢迎大家指出!