当前位置:首页分享Git入门(五):创建版本库

Git入门(五):创建版本库

版本库,也常被称为仓库,英文名为repository,它实质上是一个目录。在这个目录中,所有的文件都受到Git的管理。Git能够跟踪这些文件的每一次修改和删除,从而让你能够在任何时间点回溯历史,或者在将来某个时刻恢复到某个特定的状态。

要创建一个新的版本库,首先你需要选择一个合适的位置,并在那里创建一个空目录。例如,你可以使用mkdir命令在命令行中创建一个名为gitlearning的新目录,然后使用cd命令切换到这个新目录。

$ mkdir learngit
$ cd learngit
$ pwd
/e/Develop/gitleanring

pwd命令用于显示当前目录。在我的电脑上,这个仓库位于/e/Develop/gitleanring

如果你使用的是Windows系统,为了避免可能的问题,建议确保目录名(包括其父目录)不包含中文字符。

接下来,你可以使用git init命令来初始化这个目录,将其转变为一个Git可以管理的仓库。

$ git init
Initialized empty Git repository in /e/Develop/gitleanring/.git/

执行这个命令后,Git会立即在这个目录下创建一个名为.git的子目录,用于存储所有关于版本控制的元数据和对象数据。这个.git目录是Git仓库的核心,它包含了所有关于仓库历史和状态的信息。

请注意,.git目录默认是隐藏的,因此你可能不会立即在文件浏览器中看到它。如果你想在命令行中查看这个目录,你可以使用ls -ah命令,它会显示当前目录下的所有文件和目录,包括隐藏的文件和目录。

一旦你初始化了Git仓库,你就可以开始使用Git的各种命令来管理你的代码和文件了。

把文件添加到版本库

首先,需要明确的是,所有的版本控制系统,包括Git在内,主要跟踪的是文本文件的变动。这是因为版本控制系统能够读取文本文件的内容,记录每一行的变化,如添加、删除或修改。这种粒度级的追踪对于代码管理、协作和回滚等操作至关重要。

对于文本文件,如TXT、网页源代码、各种编程语言的代码等,版本控制系统能够提供详尽的变动历史。例如,它能够告诉你某个文件在第5行增加了一个单词“Linux”,或者在第8行删除了一个单词“Windows”。这种信息对于理解代码演进、调试和协作非常有帮助。

然而,对于图片、视频等二进制文件,版本控制系统的能力就相对有限了。虽然它们也能够管理这些文件,但无法跟踪文件内部的具体变化。版本控制系统只能记录二进制文件整体的变动,比如从100KB增加到120KB。至于文件内部到底发生了什么变化,版本控制系统无法得知。

值得注意的是,Microsoft的Word文档等某些二进制格式文件,在版本控制系统中同样无法实现精细的变动追踪。因此,在实际使用版本控制系统时,推荐使用纯文本格式来编写文件,以便更好地利用版本控制系统的功能。

此外,由于文本文件具有编码属性,不同的编码方式可能会导致在不同平台或软件之间出现兼容性问题。为避免这类问题,建议使用标准的UTF-8编码来编写文本文件。UTF-8编码具有广泛的支持性和兼容性,能够处理各种语言的字符,且不会引起冲突。

特别提醒使用Windows系统的用户,尽量避免使用Windows自带的记事本编辑器来编辑文本文件。这是因为记事本在处理UTF-8编码文件时,会在文件开头添加额外的字节(0xefbbbf,十六进制),这可能会导致在其他平台或软件中显示异常或引发错误。为了避免这些问题,建议使用其他更专业的文本编辑器,如Visual Studio Code等。这些编辑器不仅功能强大,而且免费可用,能够提供更好的文本编辑和版本控制体验。

言归正传,现在我们编写一个readme.txt文件,内容如下:

Git is a version control system.
Git is free software.

要在Git仓库中管理文件,你需要将文件放置在仓库的目录中(或其子目录中)。这是因为Git需要知道哪些文件在其管理范围内。将文件添加到Git仓库需要两个步骤。

第一步:使用git add命令

在命令行中输入以下命令,将readme.txt文件添加到Git仓库:

$ git add readme.txt

如果命令执行成功,通常不会有任何输出。这是Unix哲学中的“没有消息就是好消息”的体现,表示文件已成功添加到暂存区。

第二步:使用git commit命令

接下来,你需要使用git commit命令将暂存区的文件提交到Git仓库:

$ git commit -m "wrote a readme file"

这个命令中的-m参数后面跟的是本次提交的说明。这个说明对于你和其他的开发者来说都是非常重要的,因为它可以帮助你们了解这次提交做了哪些变更。虽然你可以不输入-m参数和提交说明来执行git commit命令,但我们强烈建议你总是添加有意义的提交说明。这不仅有助于你自己回顾历史记录,也有助于其他开发者理解你的工作。

git commit命令执行成功后,你会看到类似以下的输出:

[master (root-commit) eaadf4e] wrote a readme file  
 1 file changed, 2 insertions(+)  
 create mode 100644 readme.txt

这表示:

  • [master (root-commit) eaadf4e]:这是提交的唯一标识符,每次提交都会有一个独特的ID。
  • 1 file changed:有1个文件被改动。
  • 2 insertions(+):这个文件增加了2行内容。
  • create mode 100644 readme.txt:新创建了一个名为readme.txt的文件,并设置了其权限模式。

为什么Git添加文件需要addcommit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧