Git使用教程
基础知识
什么是Git?
Git 是一个命令行工具的集合,它可以帮你跟踪和记录文件的更改(源代码,图片等一切你想跟踪回访的)。有了它你可以恢复旧版本的项目,甚至可以比较、分析、合并和修改等。这个过程我们称为版本控制。除了Git之外,我们还有SVN,Mercurial,Perforce,CVS,Bitkeeper等,帮助我们实现版本控制
Git的特点?
Git是分布式的,我们不需要一个主服务器来托管我们的项目的各个版本,相反,它是工作在你本地磁盘上的文件夹,这个存储着Git管理的项目的文件夹,我们称为repository。同时,你也可以把你的项目的副本放到线上,如Github或Gitlab,满足多人协作和项目代码共享的需要
安装Git
这里只列出macOS的安装,主要通过 homebrew 来安装

如果你太新手的话,这里再推荐两个客户端软件,GitHub Desktop and Sourcetree
配置Git
安装完成后,我们需要添加一些配置信息。其他Git有很多配置项需要去填写,这里我们就先去填写最重要的两项,user.name和 user.email
打开终端,输入下面内容

这里的"xxxxx"和xxxxx.com需要换成你的
配置好这两项,这样每对Git操作一次都会带上上面你输入的信息,从而跟踪每次操作是谁在做
更多了解可以查看:here
创建Repository
上面我们已经提到了,Git管理和存储文件是在你磁盘的文件夹上进行的。在终端输入下面内容

git init这句命令会告诉Git这个文件夹是特别的,同时也会在该文件夹下再创建一个.git文件夹用来存储历史信息和配置信息
初始化后会有下面的信息显示

说明我们的Git Repository已经创建完毕,不过里面是空的,我们需要创建一个文件hello.txt

查看Repo状态
git status可以帮助我们查看当前Repository的状态,包括哪些文件更新了,哪些是新添,哪些是被删除了等等

这里返回的信息,就是上面我们添加的文件。这段信息告诉我们该文件是新的,但git还不知道是否需要去跟踪它还是要选择忽略它,所以我们进入 Git Staging 的学习
操作Stage状态
Git有一个“staging area”的概念。你可以把它想象为你的学生时期的书包,里面有各种作业本和书本(既是你的文件),这些作业本有些完成了作业,有些完成了一部分,有些还未做,甚至有些还是新的。你可以通过git add选择哪些作业本是需要提交的,这些被选择的作业本就进入了Stage状态,等待最后被git commit
如果选择其中一个文件,则如下

如果选择全部,则如下

如果只选择修改过的文件,不包括新增的文件和还未commit过的文件,则如下

我们这里执行第一个选择,然后查看Git状态,如下

发现Git已经知道了我们的hello.txt已经做好被提交上去的准备了
如果我们要取消hello.txt这个文件的Stage状态(取消add),则如下

操作Commit状态
将Staging的项目commit一下,就是将当前项目所在的Repository给定一个时间点状态,同时还要加一段描述去简述这次的commit的内容,就像平时说的快照,我们可以随时回去看看它怎么样

这句话的意思,跳过编辑器直接输入 commit 简述,完成提交,并显示一些信息
我们还可以这样,如下

这句话的意思是,先执行git add .再跳过编辑器直接输入 commit 简述,完成提交
如果我们要修改上一次 commit 的简述,如下

然后跳出编辑器,让你修改当前的简述
如果我们要取消刚刚的 commit ,但要保留修改过的文件或者项目,如下

如果我们要回到上一次commit干净的状态,如下

远程Repo
上面的基础知识是在本地上操作,所有的commit都是仅存在项目里的.git文件夹内。虽然本地的Repository是够用的,但大多数的情况下,我们需要共享或者部署我们的项目到线上,或者是托管到远程Repositories
连接远程Repo
这个时候,需要我们到Github上注册账号,然后在上面创建空的Repository,假设我们已经都注册好和创建好Repository
这个Repository的地址是https://github.com/AthenaIrelia/blog.git,这里的地址需要换成你自己的,这里只是作为教程使用
然后,打开终端输入 如下

一个项目可能有多个远程Repositories,为了区分不同的远程Repositories,我们就要给他们起不同的名字,这里的origin,就是这支Repositories的名字
上传到服务器
刚刚我们已经连上了远程Repositories,但上面还没有任何东西,需要我们把commit好的文件上传到远程Repositories

这里的git push还会要求你输入你的github的用户名和密码才能运行push
还有git push是带有两个参数,一个是远程Repo的名称(我们这里称为origin)和分支push(master是每个Repo的默认分支)
克隆Repo
上面我已经把本地的Repo上传到Github上了,别人就能在Github上查看和浏览Repo上的东西,甚至能克隆到他们自己的本地上,如下

Repo就会在本地上自动创建,且本地上Repo版本为Github上的版本
获取更新
你更新了Repo,别人可以通过git pull更新线上的Repo到自己的本地Repo

这里的pull指下载远程的Repo并且合并本地的Repo
同样地你可以这样获取别人的Repo
浙公网安备 33010602011771号