编写:bravo1988
校审:养兔子的大叔

不知道大家平时是怎么学习的,是不是也会边学边跟着敲代码呢?

说来惭愧,我一直是个非常懒的人,尤其是学习新知识的时候,我通常只是呆呆地看着,想通了也就过去了,不会动手去验证老师说的正确与否。等到我工作大半年后才意识到,很多知识点我虽然懂,但是用不出来,原因就出在平时只是一味地看,却没有动手去验证。正所谓“纸上得来终觉浅,绝知此事要躬行”,古人诚不欺我也…

后来我琢磨出了一个办法,用来对抗遗忘曲线:

  • 写博客记录
  • 把代码存云端(码云/Github)


    写博客更像是对知识点的整理与内化,每次写完博客才觉得自己真正掌握了这个知识点。关于写博客的好处之前已经提过了,有兴趣的朋友可以去看看写博客对程序员很重要吗?

2019年开始,专栏的文章开始改变,减少了示意图,增加了代码片段。两个目的:

  • 方便大家拷贝练习(本质是希望大家跟着做)
  • 方便自己工作时直接拷贝,节省时间

那么,就会产生一个问题:

练习结束后,这些代码放哪?自己的电脑和公司电脑来回切换还要拷来拷去,挺麻烦的。

欢迎大家使用Git+码云,走到哪敲到哪,记录自己的成长轨迹~从去年开始我坚持每周敲点代码上传,算是打卡吧。
image.png

这篇文章并不打算教大家如何使用Git,而是介绍如何学习Git。

基本流程学习

对于Git,它不像其他编程技术,我们不需要理解原理,就一个字:用。
不推荐大家一上来就看视频学习,效果很差。最好先按下方步骤动手操作一下,积累疑问再去学习。
在学习之前要明确:

  • 优先学习IDEA的Git操作。Git命令行固然重要,但界面操作更方便省心,基本能应付工作
  • 学会IDEA操作Git的基本流程后再学习Git命令行会事半功倍,因为有画面感,还有对比

在学习IDEA操作Git前,要搞明白下面这张图,它解释了Git提交/更新代码的流程。搞懂它那么Git学习就完成了20%:

image.png

你可以暂时理解为:

  • 工作区、暂存区、本地仓库都在你的电脑上,码云就是远程仓库
  • 工作区可以暂时理解为IDEA(其实不是),后面学习视频时会解释
  • 暂存区不用理会,虽然有其他用处,但是目前可以理解为缓存即可
  • Git的提交分为两个阶段:提交到本地仓库,然后才能提交到远程仓库(码云)
  • 平时只需关注本地仓库、远程仓库,其他不是很重要

image.png

好了,试着边百度边操作,把下面流程走一遍:

安装Git

百度Git,下载软件后选择目录安装,一路Next即可。

IDEA关联Git

在IDEA中关联刚刚安装的Git。这一步其实和IDEA关联本地安装的Maven一样。
image.png

注册码云、新建仓库

首先,请大家去码云注册一个账号,个人觉得挺好用的,相当于中国版Github。虽然比不上Github热闹,但是用来存代码足够了,而且支持private私有仓库,还挺好的。
https://gitee.com/

然后在个人主页左下角选择新建仓库:
image.png

image.png

image.png

本地新建IDEA项目,敲几个Java类

此时你的IDEA导航栏是没有这些图标的:
image.png

因为当前项目还不是一个Git项目。

git init创建本地仓库

mac用户可直接在IDEA下方的Terminal输入git init:
image.png

windows用户好像不行,只能去到项目所在文件夹的根目录,然后在窗口的地址栏输入”cmd”回车调出命令行窗口,输入git init:
image.png

git init命令会在当前项目根目录创建一个隐藏文件,把当前项目变成一个Git项目进行版本管理:
image.png
mac用户可以通过command+shift+.查看。

此时回到IDEA你会发现导航栏有图标了:
image.png

而且右键可以看到Git选项:
Git - 图14

配置远程仓库地址

你要把代码最终提交到码云,那么必须把仓库地址配置给IDEA(只作用于当前项目)。在任意处右键:
image.png

image.png

配置.gitIgnore文件

image.png

随便选择两个gitIgnore模板
image.png

image.png

后面有别的要求自己加,比如:target/
为什么要配置.gitIgnore?因为像.class这样的文件是没必要上传到仓库的,浪费空间。通常只上传源码即可。
顺便提一句,创建SpringBoot项目有三种方式:

  • 通过spring.io官网,下载压缩包后解压导入(不推荐,麻烦)
  • IDEA直接创建SpringBoot项目(Spring initializr,会自动创建一大堆东西,包括.gitIgnore)
  • 创建Maven项目,手动引入SpringBoot依赖(个人比较喜欢这种)

提交代码到本地仓库

点击提交代码到本地仓库,或者使用快捷键(mac: command+k)
image.png

image.png

先别急着Commit。既然上一步操作我们配置了.gitIgnore文件,刚好来观察一下这个文件是否起作用。
观察步骤:

  • 编译当前项目
  • 尝试提交代码到本地仓库,发现只有src下的源码和配置文件。关闭窗口,放弃提交。
  • 回到project,动手更改.gitIgnore的个别过滤规则,比如删除*.class再提交。这次.class文件也被提交了。

提交到远程仓库

image.png
或者快捷键提交:command+shift+k(mac)

经过以上操作,相信已经积累了不少疑惑。开始一边看视频一边实操。

为当前项目打标签

往小了说,比如你现在在敲乐优商城,刚结束day11的代码。你想给当前代码留个“快照”,以后可以恢复。
往大了说,公司项目开发会发布版本v1.0 v2.0,也可以用标签。

标签和分支不是一个概念。比如你有master分支,今天可能只写了Hello.java,你为当前状态打了一个标签v1.0,提交了代码,也提交了标签。第二天你新增了一个World.java,提交到master分支。此时的master分支已经和昨天的master分支不一样了,但是你在另一台电脑上下载v1.0标签,它的代码还是只有Hello.java。
也就是说,分支是动态的、变化的,而标签把代码状态留在了那一刻。

创建标签的步骤:

  1. git tag [tagName]
  2. git push origin [tagName]

image.png

image.png
具体细节大家看视频时留意一下。

视频推荐

个人认为目前培训班最好的Git教程是这个:2019-黑马Java最新Git教程
不过他是先讲命令行,再讲IDEA,前面可能有点难,尤其分支、合并等概念。
记得做笔记,自己能看懂即可,工作中用到了看一下即可。
image.png

命令行练习

码云网站底部有:
image.png

image.png

还是闯关解锁模式,不错哦:
命令行练习