从git仓库获取源码_Git基础介绍(一)

为什么需要版本控制?

你是否曾为误删重要文件而懊悔,你是否曾为数据丢失而苦恼?你是否曾错误改动文件而无法更正?

你丢失的或许是几日的心血,或许是照片中美好的回忆。但对于一个项目而言,任何文件的丢失与错误的修改都可能是致命。

版本控制就如同游戏中的存档,是开发中的后悔药。

我想有的人曾因担心之后的操作把已有的工作搞砸,提前复制或者备份一份已有的文件,然后再进行不太确定的操作。

很多软件为用户提供了撤销的功能,从某种层面上说,这也是一种版本控制,你能想象如Word、PowerPoint、PhotoShop等大型软件不提供撤销功能会造成多么大的不便吗?

当然,版本控制也绝非一个撤销键这样简单。

通常来说,大多数软件提供的撤销功能是有很多不足的:

(1)无法直接撤销至任意一步,只能逐步撤销。

(2)无法撤销至这次打开软件之前的版本,撤销的步数受限。

(3)不能保存撤销和重做的记录。

(4)撤销后的修改会影响撤销,无法保留现有修改的同时撤销过去的修改。

为什么选择Git?

(1)Git 是基于GPLv2的自由软件(free software)(Git 的部分内容不是基于GPLv2的,但是也基于一个与GPLv2兼容的协议),是软件自由保护组织(Software Freedom Conservancy)的子项目。

(2)Git是Linus Torvalds为维护Linux Kernel设计的工具。

Git本就是为程序开发设计的版本控制系统,比其他的版本控制系统更适合程序开发的需求。

除此之外,Git 还拥有这些特点:

(1)速度快

(2)简单的设计

(3)对非线性开发模式的强力支持(允许成千上万个并行开发的分支)

(4)完全分布式

(5)有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

Git 的历史

Linux内核开源项目有着为数众多的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。[2]

因为BitKeeper为专有软件,这个决定在社区中长期遭受质疑。在Linux社区中,特别是理查德·斯托曼与自由软件基金会的成员,主张应该使用开放源代码的软件来作为Linux内核的版本控制系统。林纳斯·托瓦兹曾考虑过采用现成软件作为版本控制系统(例如Monotone),但这些软件都存在一些问题,特别是性能不佳。现成的方案,如CVS的架构,受到林纳斯·托瓦兹的批评。[3]

Git基础

3b066d8a52277c523602ea75f8baf99d.png

Git有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。

已修改表示修改了文件,但还没保存到数据库中。

已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

已提交表示数据已经安全地保存在本地数据库中。[13]

25f3952bf2f21f037bb1080f7a366f20.png

(1)init

为了在没有使用过Git的项目中使用Git,首先需要完成初始化Git仓库,在终端内,将工作目录切换至项目的目录,便可使用git init命令完成对Git仓库的初始化。

(2)clone

任何人都可以从Github或者其他平台上获取使用Git版本控制的项目。只需要使用git clone 就可以完整的获取url所对应的项目的所有源码以及所有的改动历史。

(3)status

使用git status能查看git仓库的修改状态。

(4)log

使用git log能查看git仓库的日志。日志中包括了很多信息。

(5)diff

该命令会显示Git仓库中和上次提交相比已被修改的文件。

(6)add

a380ff90f627a8dfcbfc7be5abff2269.png

(7)commit

git commit命令用来提交已经暂存的更改。参数 -m message 附加提交信息,参数 -S 在提交中,使用GnuPG签名。

作者

文章转自:小组20级成员--赵子玮

f468a7a3f16b79ff12e095134941b33c.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值