这个作业属于哪个课程 | <福州大学2022面向对象程序设计> |
---|---|
这个作业要求在哪里 | <2022面向对象程序设计寒假作业1> |
这个作业的目标 | 学习使用Git和Github |
作业正文 | 如下 |
其他参考文献 | <push本地代码到github发生错误的解决办法><如何使用git创建项目,创建分支><本地代码上传git,git提交更改的代码> |
什么是Git
Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一)。
廖雪峰的教程开篇就引出了这样一个观点。而事实上也确实如此。Git提供的版本控制功能使得使用者能够*地修改自己的作品(这里的作品不一定是代码,它甚至可能是一篇文章,一篇毕设等等),在我粗鄙的理解里,Git就是一个可回溯的时光机。使用者可以回退到之前的版本。网上相关的教程大多在20年之前,而Git和Github的一些细节也在这几年发生了一些变化,这些变化与已有旧教程的出入往往让初学者困扰,这篇文章旨在以一个较新的版本看待Git和Github。
什么是Github
在我看来Git本质上是一种仓库,如果是个人的项目,使用Git当然没有问题。但是我们很多时候需要多人合作完成一个项目,Github是免费的远程仓库,我们可以通过Git连接到Github,把项目上传到远端。这样,别人可以使用我们开源的项目,我们可以收到别人的反馈;我们也由此可以使用别人的开源资源。
安装Git
安装一个Git是很容易的事情,网上有大把的教程可供学习。这边我直接贴上廖雪峰的教程截图(Windows系统下的安装),同时给出链接,Mac和Linux的可以直接链接查看。
<廖雪峰的Git教程>
唯一要注意的是,你应该有起码的管理文件意识,在安装的时候有意识地选择适合的安装路径,以便以后可以容易找到。
Github注册
1.注册一个Github同样不是难事。首先,进入Github:
<Github网页>:
-
点击右上角Sign up(注册),Sign in是登陆:
按照提示,输入你的邮箱,接下来的操作就和一般网页注册账号类似,按照邮件操作即可。英语看不懂的在这一步可以先开翻译。 -
创建一个自己的仓库。以便下文的演示,方法是:进入自己的Github首页,点击New repository新建一个仓库,其中有一些选项:
Repository name: 仓库名称,在这里我们演示就以自己的用户名作为仓库的名字(实际上这样做有一个小彩蛋)。
Description(可选): 仓库描述介绍
Public, Private : 仓库权限(公开共享,私有或指定合作者)
Initialize this repository with a README: 添加一个README.md,".md"代表是MarkDown语法文本格式后缀,README一般是仓库里做说明性的一个.md格式的文本,这里我们勾选上,我们后面就以这个README文本作为演示(否则仓库是空的)。
gitignore: 不需要进行版本管理的仓库类型,对应生成文件.gitignore,在这里我们先不需要。
license: 证书类型,对应生成文件LICENSE,在这里我们先不需要。
4.以自己的用户名创建的仓库只带有一个README.md,它的内容是一句打招呼:
在下面我们会把他clone到本地,修改后再上传。以这样一个简单的过程模拟,上传代码项目等等都是同理的。
在此之前,先点击绿色的Code按钮,复制你的仓库地址(记住这个位置,我们经常需要查看自己仓库地址):
我的仓库地址就是:https://github.com/Gorsonpy/Gorsonpy.git
注册虽然容易,但是你仍然可能遇到两个问题:
关于英语
如果你不是一个经常浏览外国网站的人,你可能对Github全英语的模式感到有些难受。在前期,你可以开翻译度过。但是说实话,并不建议如此。后来应力求不开翻译,因为浏览器的翻译往往翻译的一言难尽,很可能反而会误导你对一些地方和功能的理解。
Github打开缓慢问题
Github打开缓慢的原因主要在于他是被墙隔开的,所以大部分时候打开缓慢甚至根本打不开。如果去网上搜索,解决办法五花八门,例如镜像或者调整网络设置等等,但是根据我的摸索来看,绝对有用且最好用的办法只有一个,那就是:Scientific Online+Google浏览器。Google浏览器的使用也需要Out Wall,至于如何Out Wall可自行上网搜索,在这里不便多叙述。
使用Git上传Github
简单的Git命令
最简单的Git命令有这些:
(下面我的“[]"方括号都是不实际存在的,只是为了圈出范围便于阅读)
-
git clone [你的Github仓库地址]
就比如对我的仓库来说,我的命令就是git clone https://github.com/Gorsonpy/Gorsonpy.git
-
git add [你要添加的修改文件名称] 这一步可以暂且理解为是预备要修改了。
特别的,git add .
代表当前文件夹下全部预备。注意空格和句点不能省略。 -
git commit -m ["你的提交信息"] 注意双引号不能省略。提交信息是自己写的,一般要做到给出明了的信息,便于以后查看更新历史,如"first commit"。
-
git push -u origin [你的仓库分支名称],这个分支名称一开始默认只有一个,叫做main。
所以就是git push -u origin main注意:很多网上的教程这里写的都是origin master,是因为早期一开始默认分支叫master,但是现在已经改成叫main了,不要踩坑!
-
git log 会打印更新历史信息
实机演示-修改README
接下来我们就以刚才的个人仓库为例,把README.md,clone到本地再做修改后上传。
- 首先,我们创建一个文件夹,这里我叫做GitTest,右击GitTest,如果你的Git是正常安装好的,右击文件夹会有一个Git Bash here的选项,点击打开命令行。
- 回想我们刚才的命令,第一步先clone远程Github到本地,如图:(这里有一个小的点,命令行界面也是可以粘贴的,只不过是英文,复制仓库地址,在命令行界面右击paste即可粘贴。):
完成后,观察到我们TestGit文件夹下多出了一个文件夹,它的名字就是你clone仓库的名字。里面有一个.git文件夹,这个.git文件夹我们暂时不要动,除去这个文件夹外的就是仓库的内容,在这里我们只有一个README.md。
- 修改README.md的内容,这里我们改成“git yyds”,注意,这里默认你有MarkDown编辑器,如果没有,把后缀名改成.txt,直接强行修改就行,重点是看修改的过程。如果不显示后缀名.md,跟你电脑设置有关,自行上网搜索,这里不赘述了。
- cd [clone到你本地的那个文件夹名字] 意思是进入该文件夹。
- add,commit,push 一气呵成。
-
为了验证上面所有命令,我们还可以查看一下更改历史:
可以看出,它包含了更改的作者(author),更改日期(Date)以及你commit时候后面跟的提交信息。 -
最后验证一下是否真的修改到远端了呢?
成功! -
完成这样的流程,就完成了一次clone-修改-add-commit-push的操作,非常通俗但可能不完全正确的一种认识就是:clone就是把github上你的仓库所有内容搬到本地电脑上,这个时候你可以做修改,增加/修改/删除后,add你要实际更改的部分做预备,然后commit就正式提交了这种修改,而这样的修改会留下历史记录,而记录的一个重要信息你就是你commit时候在"-m"后给出的提交信息。add和commit实际上都还只是在自己的本地git上折腾,而最后一步push就是真正把这样的更改发送到了远程仓库Github。
结语
应当承认,Git和Github的使用并不容易掌握。要研究深了,更是有专门的书籍介绍。我也经过了较长时间的探索才勉强学习了一点点皮毛。正是因为我学习过,也是从网上各种教程、搜索走过来的,所以我才有了写这篇教程文章的念头,希望初学Git的人也能从我这篇文章得到哪怕是一点点的受益。由于我本人学习Git和Github的时间也不长,文章难免有疏忽遗漏乃至错误之处,欢迎批评指正。
最后,以我正在看的《Python编程从入门到实践》中附录的最后一句话来结尾吧:
需要经过一定的练习才能学会使用版本控制,但一旦开始使用,你就再也离不开他。