Git 版本控制系统简介

版本控制系统

使用传统的方法,用文件来记录版本,很麻烦,经常要回滚、反复改等。


不使用版本控制系统

如果使用版本控制系统,可以有 Hash 算法来给每一个版本命名。


使用了版本控制系统

使用版本控制系统之后,就方便对比、恢复等。可以轻松地对比每个版本之间的改动有哪些。(不只是相邻的版本,可以对比任意的两个版本。)

版本控制系统的有优点

  • 协同合作
  • 版本存储
  • 恢复之前的版本
  • 了解每一次改动

版本控制系统的分类

集中式

最早是集中式版本控制系统,以 Subversion 为例。项目的参与者使用客户端连接到中心服务器,从服务器下载内容(updata)、向服务器提交改动(submit)。
这类似于萌娘百科、百度百科等。
如果中心服务器出问题了,那么会有很严重的后果。譬如中心服务器宕机一个小时,那么这个时候所有的参与者无法 updata 或 submit。

分布式

分布式版本控制系统是当前的主流。每一个参与者都在本地留有一份完整的版本记录。仍然有一个远程服务器。

  • Push 向远程服务器推送自己的版本。
  • Pull 从远程服务器拉取一个版本。
  • Commit 提交到本地的版本。

当下最流行的分布式版本控制系统是 Git。(并不特指 GitHub)

仓库与克隆

仓库:可以想象中是一个文件夹、一个目录。这个文件夹内中的任何内容(比如代码、图片、文档)发生变更,都会被版本控制系统察觉。

仓库有本地仓库和服务端仓库(云仓库、远程仓库)。使用克隆(Clone)命令,从服务端仓库获取一份保存到本地仓库。
克隆≠下载。使用下载是不包含变更记录的,也不能方便推送到服务端仓库。下载更像是一次性的。

工作区、暂存区

  1. 在工作区中修改文件
  2. 将想要提交的改动添加至暂存区
  3. 将暂存区的文件提交至 Git 目录

分支与合并

分支成多个不同的版本。合并(merge)将所有的改动合在一起。

push 只能领先于服务端仓库,不能落后于它。

使用命令行操作

克隆

使用指令git clone来克隆既有的远程仓库。参数为各仓库平台提供的 SSH 地址或 HTTPS 地址。会克隆到当前目录。譬如当前文件夹是C:\,仓库名字叫做a,那么会被克隆到C:\a

初始化

cd转移到仓库所在的文件夹,使用git init进行初始化,会生成.git文件夹(隐藏文件夹)。

添加到暂存区

使用git add将工作区的改动添加到暂存区。参数为需要添加的文件,使用相对路径.表示当前文件夹下所有的内容。

提交

使用git commit进行提交,是提交到本地。可以使用-m参数添加消息。例如

git commit -m "this is a commit"

上传

使用git push将本地的仓库上传至远程仓库。

使用 IDEA 操作

克隆

File - New - Project from Version Control 菜单,从版本控制系统中克隆。


image.png

填写 URL:


image.png

要求登录账号密码。之后则克隆好仓库。

提交

在 IDEA 右上角点击绿色√按钮进行 commit。


IDEA commit

上传

在 IDEA 右上角绿色↗按钮进行 push


IDEA push

你可能感兴趣的:(Git 版本控制系统简介)