Git 创建版本库
- 默认模式
- 浅蓝色模式
- 淡绿色模式
- 深夜模式
Git 创建版本库
什么是版本库呢?版本库又名仓库(Repository),你可以简单理解为一个受 Git 版本控制的特殊目录,每个文件的变更(包括新增、修改、删除)都会被 Git 精准跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
创建版本库非常简单,首先,选择一个合适的路径(如项目目录),创建一个空文件夹:
$ mkdir learngit
$ cd learngit
$ pwd
/Users/kaicz/learngit
pwd
命令用于显示当前目录。在我的 Mac 上,这个仓库位于/Users/kaicz/learngit
。
注意
如果你使用 Windows 系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
第二步,通过git init
命令把这个目录变成 Git 可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/kaicz/learngit/.git/
这时一个空的 Git 仓库(empty Git repository)就建好了。细心的用户会发现当前目录下自动生成了一个名为.git
的目录,这个目录是 Git 用来管理版本库的核心所在。包含了版本控制的所有关键数据,任何不当的手动修改都可能导致仓库损坏,因此强烈建议不要直接编辑其中的任何文件。
如果你没有看到.git
目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看见了。
Git 同样支持在现有项目目录中初始化仓库,这样就可以直接为已有代码创建版本控制。不过需要特别注意的是:在学习 Git 操作时,建议避免直接在公司实际开发项目上进行练习,以防意外修改重要代码或提交记录。
把文件添加到版本库
需要明确的是,所有版本控制系统(包括 Git)的核心功能都是跟踪文本文件的变化。无论是纯文本文件(如 .txt
)、网页代码(HTML/CSS/JavaScript),还是各种编程语言的源代码,版本系统都能精确记录每一行的修改细节——例如"在第5行添加了'Linux'单词"或"在第 8 行删除了'Windows'"。
对于图片、视频、压缩包等二进制文件,虽然版本控制系统也能进行管理,但存在本质区别。系统只能记录文件整体大小的变化(比如从100KB变为120KB),无法像文本文件那样记录具体的修改内容。这是因为二进制文件没有"行"的概念,其内容变化对版本控制系统来说是不透明的。因此,Git 会将整个二进制文件视为一个不可分割的单元进行版本管理。
需要特别提醒 Windows 用户:请避免使用系统自带的记事本程序编辑代码或文本文件。这是由于 Microsoft 在记事本的UTF-8
编码实现上存在一个设计缺陷——它会自动在文件开头插入BOM
头(0xefbbbf
十六进制字符)。
强烈推荐使用专业的代码编辑器如Visual Studio Code(完全免费)来替代记事本。VS Code 不仅完美支持各种编码格式,还提供了语法高亮、智能提示等强大的开发功能,是编程工作的理想选择。
言归正传,现在我们编写一个readme.txt
文件,内容如下:
Git is a version control system.
Git is free software.
将文件放在learngit
目录下(子目录也行),因为这是一个 Git 仓库,有效作用范围就是learngit
目录及其所有子目录。
和把大象放到冰箱需要 3 步相比,把一个文件放到 Git 仓库只需要两步。
第一步,用命令git add
告诉 Git,把文件添加到仓库:
$ git add readme.txt
执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
第二步,用命令git commit
告诉 Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
简单解释一下git commit
命令,-m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
嫌麻烦不想输入-m "xxx"
行不行?确实有办法可以这么干,但是强烈不建议你这么干,因为输入说明对自己对别人阅读都很重要。实在不想输入说明的童鞋请自行Google,我不告诉你这个参数。
✅ git commit
命令执行成功后会告诉你:
1 file changed
:1个文件被改动(我们新添加的readme.txt文件)。2 insertions
:插入了两行内容(readme.txt有两行内容)。
✅ git commit
命令的注释引号使用要求:
- 在 Linux 系统中,
commit
信息可以使用单引号('
)和双引号("
)。 - 在 Windows 系统中,
commit
信息只能使用双引号("
)。
为什么 Git 添加文件需要add
,commit
一共两步呢?因为commit
可以一次提交很多文件,你可以多次add
不同的文件,比如:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
反馈提交成功
感谢您的反馈,我们将尽快处理您的反馈