Git基本概念与命令使用
Git
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统
工作区,暂存区,版本库,本地仓库
- 工作区Workspace:就是你在电脑里能看到的目录,即你代码放的那个文件夹。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
- 暂存区 Index / Stage:git add以后,当前对文件的更改会保存到这个区
- 本地仓库Repository:git commit以后,当前暂存区里对文件的更改会提交到本地仓库
- 远程仓库Remote:远程仓库名一般叫origin。git push以后,本地仓库里优先于远程仓库的commit会被push到远程仓库
时刻保持数据完整性
在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引。换句话说,不可能在你修改了文件或目录之后,Git 一无所知。这项特性作为 Git 的设计哲学,建在整体架构的最底层。所以如果文件在传输时变得不完整,或者磁盘损坏导致文件数据缺失,Git 都能立即察觉。
Git 使用 SHA-1 算法计算数据的校验和,通过对文件的内容或目录的结构计算出一个 SHA-1 哈希值,作为指纹字符串。该字串由 40 个十六进制字符(0-9 及 a-f)组成,看起来就像是:
24b9da6552252987aa493b52f8696cd6d3b00373
Git 的工作完全依赖于这类指纹字串,所以你会经常看到这样的哈希值。实际上,所有保存在 Git 数据库中的东西都是用此哈希值来作索引的,而不是靠文件名。
多数操作仅添加数据
常用的 Git 操作大多仅仅是把数据添加到数据库。因为任何一种不可逆的操作,比如删除数据,都会使回退或重现历史版本变得困难重重,但在 Git 里,一旦提交快照之后就完全不用担心丢失数据,特别是养成定期推送到其他仓库的习惯的话。
这种高可靠性令我们的开发工作安心不少,尽管去做各种试验性的尝试好了,再怎样也不会弄丢数据。
文件的三种状态
好,现在请注意,接下来要讲的概念非常重要。
对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。
基本的 Git 工作流程如下:
在工作目录中修改某些文件。
对修改后的文件进行快照,然后保存到暂存区域。
提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
补充命令
获取帮助
想了解 Git 的各式工具该怎么用,可以阅读它们的使用帮助,方法有三:
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
比如,要学习 config 命令可以怎么用,运行:
$ git help config
我们随时都可以浏览这些帮助信息而无需连网。 不过,要是你觉得还不够,可以到 Freenode IRC 服务器(irc.freenode.net)上的 #git 或 #github 频道寻求他人帮助。
这两个频道上总有着上百号人,大多都有着丰富的 Git 知识,并且乐于助人。
跳过使用暂存区域
只要在提交的时候,给 git commit 加上 -a 选项,Git就会自动把所有已经跟踪过的文件暂存起来一并提交
git commit -a
Git全面教程
还没有评论,来说两句吧...