Git与GitHub使用教程
本文最后更新于:2022年7月21日 下午
Git与GitHub使用教程
这篇文章是我的学习笔记,借鉴了各种博主的资料和自己的理解整理而成。
本文从0开始完整介绍Git和GitHub,所以比较长,请灵活运用大纲和搜索功能。
Git
Git是什么?
Git是目前世界上最先进的分布式版本控制系统。
版本控制的目录叫做一个仓库(repository)
你的本地仓库由 Git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。
使用Git的工作流程如下:
在本地修改、保存之后,通过 推送(Push) 操作来提交到远程仓库。
与其他版本控制系统一样,Git还提供 分支(branch) 功能,该功能允许你从开发仓库的主线上分离出一个版本,然后在不影响主线的情况下继续工作。
版本控制系统:
小明正在写一篇文章,他想删除一个段落,过了一会后,他突然发现他想要回这个段落,于是他苦逼地再打了一遍。
小红正在写一篇文章,她想删除一个段落,但是她不确定之后是否想恢复这个段落,所以她拷贝了一份,过了一会儿,她又想更改一个段落,也不确定之后是否会想恢复,于是她又拷贝了一份,他的文件夹里出现了很多类似xxxxx-副本(2)的文件,她苦逼地寻找他想要恢复的那个版本。
张三正在写一篇文章,他使用了Git来管理版本,Git详细记录了每次更改的日期和更改处以及张三自己为改动写的备注。他很开心地写了一篇神作。后面李四想与张三合作这篇文章,李四也使用Git,Git还记录了每次更改的用户。他们很开心地合作了一篇神作。
分布式:
下图是集中式系统,中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。
下图是分布式系统,首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
使用Git
使用之前
Git是一个跨平台的开源软件。官网没有被墙而且速度很快,直接下载安装即可。
Linux系统可以使用sudo apt-get install git
安装
下载安装后,打开终端或Git Bash,我们接下来要配置Git。
配置要设置你的身份,身份由用户名和邮箱组成,通过一下命令设置:
1 |
|
命令介绍
最常用的命令是push
commit
pull
clone
1 |
|
GitHub
GitHub是一个面向开源及私有软件项目的托管平台。也就是远程仓库存放的地方。18年被微软收购,目前微软、谷歌以及很多开源项目的代码都托管在改平台。GitHub是最好的代码托管平台。
界面大概长这样23333
使用之前
你得先注册一个GitHub账号。官网
然后你要创建一个SSH Key,这个秘钥用来保证没有别人来瞎改你的仓库,是你的凭证。
打开终端(git bash)输入下面代码
1 |
|
然后在你的用户主目录(Windows下是C:\users\你的用户名)下找到.ssh目录。
里面有id_rsa
和id_rsa.pub
两个文件,公钥是.pub
,打开它,复制里面的内容。
打开Github的Account settings,在SSH keys里面粘贴。然后添加Key。
创建远程仓库(repo)
在你的用户界面下的Repositories点new。
Repository name是你仓库的名字。之后是对仓库的描述以及可见性,现在Github上私有库已经免费了,所以这两个随便选。其他暂时默认,点击创建。
然后你就有了一个远程仓库!
此时网页会写的很清楚这个仓库的地址,之后你就可以用命令行来git了!
客户端
GitHub有客户端,搜索下载就行了,然后登陆,这样你就不用手动输入命令了。
README.md
别人从网页打开你的仓库会有一个初始化文档,让别人知道你这个仓库是用来干什么的,要如何使用你的代码。这些通常用markdown格式书写,并且命名为README.md放在根目录。这个文件会在网站上自动显示。github官方教程
GitHub支持拓展语法:
emoji::blush:
😊
@用户:@username
可以@别的用户
标准写法:Standard Readme
issues
GitHub为开发者提供了许多便于开发的功能,其中,issues功能被用来追踪各种想法,增强功能,任务,bug等。
项目维护者可以通过Issues来组织需要完成的任务,例如增加新特性或者审计一个已经上线的功能。同时,还可以将Issues关联某些pull request,一旦合并了某个pull request,这个issue会被自动关闭。同时,你可以将issues添加到看板,也可以将看板的任务转化为issue。
commit log
feat: 新功能
change:需求变更
fix:缺陷修复
test:修改测试代码
docs:文档变更
style:代码格式调整
refactor:代码重构
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!