昨天睿哥布置了一个任务给我,让我学习一下 Git 的一些命令。
我问睿哥,到底我们在实际开发中用哪些命令会比较多,睿哥是这样回答我的:
而且他推荐我用 IDEA 自带的那个 Git 面板来执行 git 命令,他说直接敲命令太麻烦了,还慢。在这之前,我一直以为 git 只可以用命令来操作,就是要用键盘敲,我才知道原本 IDEA 也有 Git 面板,在 IDEA 直接用 Git 面板,点来点去就可以了。
所以昨天的时候,我就去着重的学习了一下这些命令在 IDEA 中如何操作。结果我发现,操作是学会了,但是我并不知道这些命令到底是用来干嘛的,为什么要有这些命令。我当时就处于一个知其然而不知其所以然的状态。因此,今天我专门研究了一下这些命令的意思以及为什么要有这些命令。
关于 Git 的常用概念
版本库(Repository)
版本库是存储代码修改历史的地方,在这里面记录了每个文件的每次修改。我们在修改完代码之后,用提交命令,就会提交到这个地方。然后提交到这个地方之后,再用推送命令,就会将代码提交到远程仓库。
远程仓库(Remote Repository)
开发人员可以从远程仓库下载代码,将本地修改的代码通过提交命令+推送命令,可以将代码推送给到远程仓库上。
提交(commit)
我们每次对代码进行修改之后,都需要提交,把代码提交到版本库中。这里我印象比较深的就是提交之后,IDEA 会让你填写一下提交信息,描述一下你提交的那个代码修改了什么。
分支(branch)
讲分支之前,我们需要知道为什么要分支?通过创建分支,我们就可以在不影响主线开发的情况下,进行独立的工作。每个分支都是一个独立的代码版本,我们一般在分支上进行修改,然后提交。不同分支可以切换,分支也可以删除。
合并(merge)
为什么需要合并呢?因为每个人用不同的分支开发完成之后,都需要将这些分支合并到主线上。合并其实就是将不同代码版本合并成一个版本。不过我问了睿哥,他跟我说这个我用的应该不算多,他自己用的会多一点,毕竟我不是组长哈哈哈。
签出(checkout)
对某个分支选择签出之后,就会切换到这个分支。
容易混淆的两个概念之变基与合并
这个我还不是很懂,等到时弄懂了再写
容易混淆的概念之拉取和提取
拉取(Pull)其实包含两个慢动作,一是先从远程仓库获取最新的提交记录(提取Fetch),二是将这些提交记录应用在本地分支上(合并Merge)。
为什么需要拉取呢?拉取其实是为了和远程分支保持同步。
而提取其实只是拉取的其中一个步骤,这个命令只会从远程仓库中获取最新的提交记录,不会将最新的提交记录合并应用到本地分支上。这样我们就可以先查看提交记录,看看这些新的提交记录对我们有没有用,然后再决定要不要合并。
有一个公式:拉取(Pull)=提取(Fetch)+提取(Merge)