Git入门课 和 Github及码云的使用

学习资料 4年前 (2020) admin
0

同学们,你来了,快坐下,今天我们来讲讲编程界的两大神器: GitGithub

GitGithub 都是程序员每天都要用到的东西 —— 前者是目前最先进的 版本控制工具,拥有最多的用户,且管理着地球上最庞大的代码仓库;而后者是全球最大 同性交友 代码托管平台、开源社区。中国版的Github码云,咱们作为作业使用,因为它服务器在国内访问速度快,现在大家可以跟着我讲解,先一步一步注册和使用Github。

如果你之前没接触过「版本控制」的概念,看到这里一定是一脸 xx 的,别急,看了这篇文章你一定能明白:

什么是版本控制

简单复述一下文章中的例子:

大四毕业生 小张 在写 毕业论文,他经常删删改改,有时还会后悔“昨天那个思路那么好,我怎么就给删了”……

有了多次教训后,他决定每次写之前都先复制一份,在复制的那份里修改,这么一来,文件夹里有了:

毕业论文_初稿.doc
毕业论文_修改1.doc
毕业论文_修改2.doc
毕业论文_修改3.doc
毕业论文_完整版1.doc
毕业论文_完整版2.doc
毕业论文_完整版3.doc
毕业论文_最终版1.doc
毕业论文_最终版2.doc
毕业论文_确定版1.doc
毕业论文_确定版2.doc
……

小张想:“虽然很痛苦,但不至于丢掉以前的灵感了吧……等等,最终版和确定版哪个是昨天写的来着???”

同时,他还要把论文发给学霸女友求帮忙,第二天他的文件夹里又有了:

毕业论文_最终版3.doc
毕业论文_女友版1.doc
毕业论文_女友版2.doc

几星期的煎熬下来,文件夹里多了几十份文件,小张的论文也快成型了,是时候把自己和女朋友的内容合并起来了。

这时又发生了一件喜闻乐见的事:U 盘中病毒了,而电脑里只有 1 个月前的版本……

如何拯救生无可恋的小张?其实,如果小张一早知道用「版本控制」工具就好了,他的文件可以整整齐齐地排列,就像这样:

Git入门课 和 Github及码云的使用
图片出处

“哎呀,早知道能这样,就不用手动控制那么多版本啦!”

但这还不够,如果能有一个支持「论文托管 + 论文版本控制」的网站就更好了。这样一来,小张不但能和女朋友合作编辑内容,还不用担心因电脑故障,导致之前论文版本的丢失。

这时 —— 论文Hub 出现了,它可以帮你托管论文,而且和版本控制工具无缝连接。

越来越多人发现了 论文Hub 的好处,相继把论文托管在论文 Hub 上 ,网站上的论文越来越多。一些优秀的作者还会把论文开源出来,让每个人都可以查阅、交流、学习……

慢慢的,论文 Hub 变成了全球最大的「交友社区」,并逐渐演化成了一种时尚 —— 找工作时,面试官会先问你有没有 论文 hub 的账号,有多少个赞、多少粉丝;而有优秀作品的人,会被大公司争抢录用……

这个 论文 hub,就是我们今天要学习的 Github ,只不过论文换成了程序代码。Github 大概长这样:

Git入门课 和 Github及码云的使用

在没有这两个工具时,编程可能是这样的:

  • 哪个同事修改了我的代码?我要杀了他
  • 我把自己的代码改崩溃了?️我选择自杀
  • 电脑崩溃、硬盘损坏、中毒,几万行代码找不到了?

但有了他们,一切都不一样了:

  • 同步代码到网络仓库,在家里写好代码上传,回到公司就可以继续写了,而且不怕丢失。
  • 记录每次代码的修改,即使把程序写崩了,也能即使回溯到上一个版本。这在产品更新时也经常使用。
  • 可以多人协作完成项目,每个人的提交都有清晰的记录。

在之后的学习中,你也会不断用到 GitGithub,把你完成的项目、学习记录,同步在 Github 的仓库中。这样做的结果是:你将有一份 非常漂亮的 Github 主页,能给你的简历加分很多。

接下来,我们将学习 Git 的基本操作,并注册 Github 账户,建立你的第一个代码仓库!

知识点:

  • 版本控制
  • Git 和 Github的历史
  • 在 GitHub 创建仓库
  • 添加修改到暂存区
  • 提交代码
  • 同步远程仓库

Git 和 Github的历史

Linux 之父 林纳斯(Linus) 在 1991 年创建了开源的 Linux 系统,随着 Linux 代码量越来越大,合并志愿者提交的代码已经无法依靠人工完成,所以 林纳斯 选择了商业的管理软件 BitKeeper ,来管理 Linux 的代码版本。

在 2005 年,BitKeeper 公司发现,有 Linux 社区的人试图破解 BitKeeper 软件,他们决定收回 Linux 社区的免费使用权。林纳斯 对此事调解数周无果,决定自己搞一个。他花了十天时间用 C 语言写好了一个开源的版本控制系统,就是著名的 Git。

Git入门课 和 Github及码云的使用

(先写出一个操作系统,再用 10 天写出 Git,林纳斯已经不能用大神来形容,只能理解为外星人来技术扶贫的)

2007 年,旧金山的三个年轻人觉得 Git 是个好东西,创建一个公司名字叫 GitHub,第二年上线了使用 Ruby 编写的同名网站。这是一个基于 Git 的免费代码托管网站(有付费服务),十年间迅速蹿红,击败了实力雄厚的 Google Code,成为全世界最受欢迎的代码托管网站。根据 2018 年 10 月的 GitHub 年度报告显示,目前有 3100 万开发者创建了 9600 万个项目仓库,有 210 万企业入驻。

值得一提的是,GitHub 的 创始人、CEO —— Wanstrath 是一位大学肄业,自学成才的程序员。而他大学的专业是英语,相当于我们的“汉语言文学”专业,是一名地地道道的 “文科生” ,如今,他的身家可能超过了10亿美元,也算是一位自学编程成才的标志人物吧。

Git入门课 和 Github及码云的使用

git的安装及使用Github 和gitee(码云)的完整操作

Git 是一个版本控制系统,可以理解为一个工具,使用之前必须得先下载安装,所以第一步必须要安装。

  • Windows:GitForWindows
  • Mac系统安装:git-osx-installer
  • Linux:在终端输入命令行安装
  • Debian系列:apt-get install git
  • Fedora上:yum install git-core

咱们这节课主要讲讲git在 windows的安装和使用

1、git软件的安装:https://git-scm.com/downloads

mac系统是自带的不用安装

windows系统安装:下载好的软件一路下一步即可。

2、安装好的显示:在任意目录下点击右健,出现git 的两个菜单就代表安装成功

Git入门课 和 Github及码云的使用

下面,我们分别通过一次上传 Github 和gitee(码云)的完整操作,实践学习 Git 的常用功能。

Github的完整操作

首先,申请一个 Github 账户

打开 GitHub,你可以在主页的 banner 上快速注册,或者点击右上角的 Sign up 注册。

Git入门课 和 Github及码云的使用

下一步,我们选择创建一个免费账户。

Git入门课 和 Github及码云的使用

下一步,回答两个问题,也可以在最下面选择跳过:

Git入门课 和 Github及码云的使用

最后,去注册邮箱中接收验证邮件,验证后,自动用新注册账户登陆,进入 Github 主页。

Git入门课 和 Github及码云的使用

第二步,我们来新建一个代码仓库

仓库( repository),可理解为储存代码的场所,点击个人主页的右上角的加号,再点击 New repository ,即可创建新的仓库:

Git入门课 和 Github及码云的使用

然后给你的仓库命名(比如说 Demo),然后点击 Create Repository,无需考虑本页面的其他选项。

Git入门课 和 Github及码云的使用

创建后,页面跳转到新建仓库的主页面,第一步成功了!

Git入门课 和 Github及码云的使用

下面我们以Linux系统为例,码云以windows为例,建议大家熟悉一下Linux系统及相关命令。

让我们在本地新建一个文件,最后上传到刚刚创建的仓库中。

如果你本来就熟悉Linux系统,那么在的你在 Linux 中创建文件,应该很轻车熟路了吧:

mkdir Demo
cd Demo
gedit README.md

然后在打开的文件中输入 #Demo,保存文件后关闭 gedit 。

Git入门课 和 Github及码云的使用

用 cat 命令查看一下文件内容:

Git入门课 和 Github及码云的使用

创建文件 OK 了,但现在,Demo 目录还只是一个普通的目录,我们如何用 Git 来控制这个目录?

你只需在 Demo 目录中,输入 git init 即可。

git init

这是 Git 的初始化操作,作用是将一个已存在文件夹,置于 Git 的控制管理之下

再 ls -la 命令,会发现一个名叫 .git 的目录被创建了,这意味着仓库初始化成功。可以进入到 .git 目录查看下有哪些内容。

Git入门课 和 Github及码云的使用

Git 提交代码的基本流程是这样的:

  • 创建或修改 本地文件
  • 使用 git add 命令,将创建或修改的文件添加到本地的 暂存区,这里保存的是你的临时更改
  • 使用 git commit 命令,提交文件到 本地仓库
  • 使用 git push命令,将本地代码库同步到 远端仓库

Git入门课 和 Github及码云的使用

目前为止,我们实现了第一步,创建了一个文件,我们的最终目标是:将本地的 Demo 仓库,同步到 GitHub 上的 Demo 仓库中。

? git add

使用 git add + 文件名/目录名 命令,可以将你需要同步的文件,添加到本地的暂存区。我们先进入 DEMO 目录,然后把 README.md 文件添加一下:

cd /home/shiyanlou/Demo
git add README.md

输入 git status ,可以检测当前目录和暂存区的状态,查看哪些修改被暂存了:

Git入门课 和 Github及码云的使用

可以看到我们刚刚 add 的文件已经被初始提交了。

? git commit

git commit 提交是你工作的一个里程碑 —— 每当你完成一些工作,都可以创建一次提交,保存当前的版本。

这样一来,无论你何时修改了文件,都创建一个新版本的文件,你可以很方便地查看以往所有版本的文件和内容。

在提交之前,你必须先设置你的名字和 email,这是你在提交 commit 时的签名,每次提交记录里都会包含这些信息。

使用 git config 命令进行配置:

$ git config --global user.name "YourName"
$ git config --global user.email "YourEmail@xxx.com"

完成配置后,我们可以创建提交了,请输入:

git commit -m "first commit"

commit 的语法结构是 git commit -m "注释",通过上个命令,你创建了一条注释为 “first commit” 的 Git 提交。

Git入门课 和 Github及码云的使用

⚠️ 注意:每次提交,您都必须用 -m + '注释' 编辑注释信息 。它不仅能协助您辨别不同的版本,而且能让你理解,自己当时对文件做了什么修改。

比如当你每次在文件中添加了新的代码后,你可以写一句提交信息:“添加了 XXX 代码” —— 当你一个月后回来看提交记录或者 Git 日志 时,你还能知道当时做了什么。

终于到了激动人心的时刻,我们要把本地仓库提交到远端仓库(即 Github 仓库)中。

? 连接 Github 仓库

使用如下命令,将本地仓库连接到 GitHub 仓库中:

git remote add origin 仓库链接

仓库链接请在这里复制,并用剪切板功能粘贴进去:

Git入门课 和 Github及码云的使用

我们分析一下这个命令,首先 remote 的意思是远程

Git入门课 和 Github及码云的使用

add 很容易明白 —— 添加。git remote add 表示通知 Git 去添加一个远程仓库,后面接上的 origin 是这个仓库的小名,方便以后沟通,通常默认用 origin 来表示;最后再接上远程仓库的地址,即你刚刚创建的 Github 仓库链接。

Git入门课 和 Github及码云的使用

? push 命令

push 顾名思义,就是推送, 使用 push 可以把本地仓库推送到远端仓库中。

具体命令如下:

git push origin master

执行后,GitHub服务器 需要验证你的身份,按提示输入你的用户名和密码即可完成 push 同步。

⚠️ 注意:在Linux 中输入密码是不可见的,输完后直接按回车键即可。

Git入门课 和 Github及码云的使用

接下来就是见证奇迹的时刻 —— 再刷新你的 Github 仓库,就会发现多了这些东西:

Git入门课 和 Github及码云的使用

?分支的概念:分支在多人协作中经常会被用到,但前期我们用不到这个功能,为了不给你增加认知负担,这里就先不讲了。你只需知道 Git 管理的项目进程中,有一条默认的主分支 - master 即可。(想象 Git 是一棵树,master 就是树干,树干上还可以生出很多分支来,如 master 2.0、master 3.0 等)

最后一个知识点是 git clone 命令,它可以帮你拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。

Git入门课 和 Github及码云的使用

如果你想要复制一个项目,看看代码,或者把自己的远程仓库复制到本地,可以执行命令:

git clone [url]

[url] 指的就是你想复制的仓库,比如在 github.com 上提供了一个名字为 gitproject 的公开仓库, 供大家测试,现在你要把这个仓库复制到实验环境中,只需输入:

$ cd /home/shiyanlou/
$ git clone https://github.com/shiyanlou/gitproject

操作完成后,会发现 /home/shiyanlou 目录下多了一个 gitproject 文件夹,这个文件夹里的内容就是我们刚刚 clone 下来的代码。

Git入门课 和 Github及码云的使用

关于 Git 的在Linux系统下的常用操作我们就学到这里。

gitee(码云)账户的创建及使用

大家扫码进行注册,这是我申请的高校版,提供的配额资源如下:

Git入门课 和 Github及码云的使用我们的班级团队专用邀请码:

Git入门课 和 Github及码云的使用

一、如下图,接受邀请并注册

 

二、可以一键微信注册,后绑定手机,修改姓名,请修改为17计科+班级+姓名

Git入门课 和 Github及码云的使用

三、创建仓库

Git入门课 和 Github及码云的使用

四、点击【创建】:创建成功后显示

Git入门课 和 Github及码云的使用

五、仓库的其它说明:

Wiki:写开发文档

lssues:写凝问的

Git入门课 和 Github及码云的使用

六、上传git文件:

(1):在自己PC硬盘上创建一个文件夹,不要使用中文,建议放到根目录便于查找。(备注:也就是创建工作空间,所谓工作空间其实就是我们在操作系统上的工作目录。我们能够通过操作系统的文件管理命令进行查看(例如在Linux上通过ls命令)在Linux平台执行如下命令即可。

mkdir gittest

然后切换到该目录,并在里面随便创建一个文件,可以执行如下命令。

cd gittest

  echo "hello itworld123" > test.md

完成上述操作后,我们可以看一下工作空间(其实就是一个本地目录,没有什么高大上的)。)

(2):进入这个目录,这个目录是存放自己的代码的根目录,右键点击【Git Bash Here】。mact系统 没有这个功能,即用最上面的说明。

Git入门课 和 Github及码云的使用

(3)、 让git把这个文件夹管理起来,即初始化: git init(备注:就是创建本地仓库  创建本地仓库其实非常简单,保持在刚才创建的文件夹内部(工作空间)。通过执行git init命令就可以初始化一个本地仓库。 完成本地仓库的创建之后,我们可以看到在目录下多出一个.git的隐藏目录,Git就是通过这个目录里面的内容实现版本控制的。)

(4)、get add .   将当前文件夹下的文件收集起来,用于上传给码云

(5)、第一次上传时,需要设置邮箱及姓名,这个步骤只在第一次时执行,

当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改,再次强调,如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

git config --global user.email "自己的邮箱"

git config --global user.name "姓名"

git remote add origin https://gitee.com/........     这个url用origin来代表,意思是不用每次都敲这个url地址,而用origin这个别名来代替。这个url即码云里的那个地址  备注:这句话很关键

Git入门课 和 Github及码云的使用

(6)、git commit -m "写本次修改的内容"     # 这个是用于做个记录

(7)、git push origin master     --将 git add . 收集上来的文件,用git工具提交到变量origin变量所对应的那个仓库的master分支下。备注:origin是变量!origin是变量!origin是变量!如果接下来你用上面的同样的命令git remote add origin https://gitee.com/........ 但这次的这个URL与上面的不同 那么origin这个变量就代表这次的URL了  master 是仓库的一个分支的名字

第一次使用时需要输入用户名及密码,这个用户名及密码,是码云的用户名及密码。

Git入门课 和 Github及码云的使用

(8)、如果要在该仓库下创建其它分支,可用如下命令(现在可以不学):

 创建分支要用命令

git checkout -b <分支名>

查看当前分支名,使用命令

git branch

当前分支前面会加一个* 号

回顾一下本节课学到的内容:

• 版本控制

• Git 和 Github的历史

• 在 GitHub 创建仓库

• 添加修改到暂存区

• 提交代码

• 同步远程仓库

之后,请你把这些操作整理在脑图中,类似这样:

Git入门课 和 Github及码云的使用

? 综合练习

现在有 Github 账户,为何不把这几天的学习记录下来呢?

你可以在 Github 中新开一个仓库,起名为「Louplus」,然后把这几天的笔记或脑图都放进去,这样做的好处是:

• 方便之后查阅

• 漂亮的学习记录,可以激励你以后的学习

• 这将是你未来求职最好的证明

我们为你准备了四张从 Linux 到 Python 到 Git 的学习脑图,请你试着用今天学到的内容,上传到 Louplus 的仓库中:

? 步骤:

  1. 在 Github 的个人主页中新建一个仓库,命名为 Louplus
  2. 复制仓库链接,在实验环境中,将该仓库克隆到本地

Git入门课 和 Github及码云的使用

  1. 进入本地的仓库目录,输入以下命令,下载我们之前的学习脑图(下面的脑图是python相关课程的知识图,作为训练,可以用剪切板一口气把四行命令粘贴进去):
    wget https://labfile.oss.aliyuncs.com/courses/1330/linux.png
    wget https://labfile.oss.aliyuncs.com/courses/1330/python1.png
    wget https://labfile.oss.aliyuncs.com/courses/1330/python2.png
    wget https://labfile.oss.aliyuncs.com/courses/1330/git.png
  2. 使用 git add --all 命令,添加仓库内的所有文件
  3. 使用 git commit、git remote、git push 命令,将本地仓库同步到 Github 中
    完成后,再次刷新你的 Github 仓库,4 张图片就这么被上传了~

Git入门课 和 Github及码云的使用
最后,不要忘了做我们的最终挑战~
最终挑战很简单:请你把上个挑战完成的代码文件,传到自己的 Github 和码云上。
最终挑战也很重要:从现在开始,就请养成良好的代码上传习惯,不管是学习中的代码、挑战中的代码,都可以上传到 Github 和码云上,你的代码仓库将是你未来的财富。
胜利就在前方,加油 ~

最后要感谢 git的创建者们  实验楼的相关老师 github的创建者以及码云提供的高校版托管服务 以及 语雀提供的相关资源

版权声明:admin 发表于 2020-08-11 17:20:02。
转载请注明:Git入门课 和 Github及码云的使用 | 我的学习信息记录

暂无评论

暂无评论...