Post

Git入门(一)Git基础概念和安装

  • 转载自 JinHanLei.github.io 如有侵权,请联系删除

我以前一直有错误的认知,以为GitHub就是一个代码分享平台,下载他人的代码来学习。但是在实际使用中发现,其作用远不止于此,GitHub不仅可以保存自己每次代码的改动,自己电脑坏了可以从GitHub找回。此外还可以向代码作者提问、多人协作,甚至搭建自己的网站,本博客也是完全由GitHub搭建的。如果你还没帐号,快去GitHub 注册一个吧!

GitHub基础概念

GitHub 是一个用于版本控制和协作的代码托管平台。 它允许您和其他人随时随地协同处理项目。更多操作可以参考GitHub官方文档中文版

版本控制

版本控制(VCS)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。比如误删了某些关键文件,或者刚写的代码跑不起来,想回到之前的状态,VSC可以帮您轻松恢复。有以下几种方案实现这一操作:

  1. 本地版本控制系统。例如隔一段时间就将整个项目打包。或许还会改名加上备份时间以示区别,这么做唯一的好处就是简单。不过坏处也不少:有时候会混淆所在的工作目录,也无法查看每个版本修改了什么,更不方便管理;
  2. 集中化的版本控制系统( Centralized Version Control Systems, CVCS )。很多人一起开发同一个项目时,每个客户端把自己的代码都上传到同一个中央服务器,这样一来,每个人都可以在一定程度上看到项目中的其他人正在做些什么,而管理员也可以轻松掌控每个开发者的权限。这么做最显而易见的缺点是中央服务器的单点故障,一旦服务器挂掉,风险就很大;
  3. 分布式版本控制系统( Distributed Version Control System, DVCS )。中央服务器存一份,每个本地客户端也同样存一份。每一次操作,实际上都是一次对代码仓库的完整备份,可以理解成你的计算机中专门开辟了一块空间,来用git存代码。这么一来,当中央服务器发生故障,事后都可以用任何一个本地仓库恢复。如图:

img

Git就是一个分布式版本控制系统,由 Linux 的缔造者 Linus主导设计完成。对以下目标进行了相当卓越的优化:

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许上千个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

最终形成现在的Git,了解Git的基本工作原理,有助于我们知道下文他的各个命令是要干什么。

文件的三种状态

让我们简化Git,只有你的计算机和GitHub,那么势必有两种操作:

  1. 把你的代码上传到本地仓库
  2. 把本地仓库上传到GitHub仓库

第一步在本地进行。本地文件可以自然想到:新建(或删除)、修改、上传这三个操作。

对应的,对于任何一个文件,在 Git内都只有三种状态:

  1. 已修改(modified):刚改完文件,包括新建、删除、修改等,还没跟git有关;
  2. 已暂存(staged):对应命令git add,告诉git要传哪些文件。每次提交前都需要暂存,目的是提高检索效率,以便更快对比修改了哪些地方;
  3. 已提交(committed):对应命令git commit,已经上传到本地仓库。

最后可以用git push命令,上传到GitHub仓库。明白这些Git的基础概念后,咱们开始先安装一下。

安装 Git

安装Git很简单。

在 Linux 上安装

1
2
3
yum install git-core
# 或者
apt-get install git

在 Mac 上安装

需要通过brew工具:

1
2
3
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 

brew install git

在 Windows 上安装

gitforwindows下载安装包,一直下一步即可。

初次运行 Git 前的配置

同样的,把Git变成自己的,第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:

1
2
git config --global user.name "Hanlei Jin"
git config --global user.email jin@smail.swufe.edu.cn

查看配置信息:

1
git config --list

自此可以开始愉快使用Git了。Git很强大,但是大家可以发现上面大多都是代码,无法对Word、PPT等进行版本控制。这是由于git检查修改只能检查纯文本,而Word本质上是个压缩包,尝试用记事本打开Word,是乱码的。而对markdown、LaTeX等则可以用Git,因此做技术类的文章撰写,还是建议采用markdown或者LaTeX~

This post is licensed under CC BY 4.0 by the author.

Trending Tags