📜  什么是 GIT 存储库?

📅  最后修改于: 2021-10-24 12:55:56             🧑  作者: Mango

GIT 中的存储库包含项目的各种不同版本的文件集合。这些文件从存储库导入到用户的本地服务器,以进一步更新和修改文件内容。 VCS 或版本控制系统用于创建这些版本并将它们存储在称为存储库的特定位置。在各种 Git 工具的帮助下从现有 Git 存储库复制内容的过程称为克隆。克隆过程完成后,用户将在其本地计算机上获得完整的存储库。默认情况下,一旦克隆完成,Git 假定要在存储库上完成的工作是作为用户进行的。
用户还可以创建新存储库或删除现有存储库。要删除存储库,更简单的方法是删除包含存储库的文件夹。
存储库可以根据在服务器上的使用情况分为两种类型。这些是:

  • 裸存储库:这些存储库用于共享由不同开发人员完成的更改。不允许用户修改此存储库或基于所做的修改为此存储库创建新版本。
  • 非裸存储库:非裸存储库是用户友好的,因此允许用户创建文件的新修改并为存储库创建新版本。如果在克隆操作期间未指定任何参数,则默认情况下克隆过程会创建一个非裸存储库。

Git 存储库的工作区或暂存区

Git 存储库中的工作树是源自某个版本存储库的文件的集合。它有助于跟踪特定用户对一个版本的存储库所做的更改。每当用户提交操作时,Git 只会查找工作区中存在的文件,而不是所有修改过的文件。只有存在于工作区中的文件才会被考虑进行提交操作。
工作树的用户可以通过修改现有文件和删除或创建文件来更改文件。
存储库的工作树中有文件的几个阶段:

  • Untracked:在这个阶段,Git 存储库无法跟踪文件,这意味着文件永远不会被暂存,也不会被提交。
  • 已跟踪:当 Git 存储库跟踪文件时,这意味着该文件已提交但未暂存到工作目录中。
  • Staged:在这个阶段,文件准备好提交并被放置在暂存区等待下一次提交。
  • Modified/Dirty:对文件进行更改时,即文件已修改但更改尚未暂存。

在工作区中完成更改后,用户可以在 GIT 存储库中更新这些更改或还原更改。

使用存储库

GIT 存储库允许对其执行各种操作以创建项目的不同版本。这些操作包括添加文件、创建新存储库、提交操作、删除存储库等。这些修改将导致创建不同版本的项目。

添加到存储库

在对工作区中的文件进行各种修改后,GIT 还需要再执行两个步骤将这些更改保存在本地存储库中。
这些步骤是:

  1. 添加对索引的更改(暂存区)
  2. 将索引更改提交到存储库

添加对索引的更改
这个过程是通过使用git add命令完成的。在工作树/区域中进行更改时。这些更改需要添加到暂存区以进一步修改文件。 git add命令将文件添加到本地存储库中。这会为提交过程暂存它们。

句法:

$ git add File-name

添加命令的不同使用方法:

$ git add

将特定的文件列表添加到暂存区。

$ git add --all

将当前目录的所有文件添加到暂存区。

$ git add *.txt

将当前目录的所有文本文件添加到暂存区。

$ git add docs/*.txt

将特定目录(docs)的所有文本文件添加到暂存区。

$ git add docs/

将特定目录(docs)中的所有文件添加到暂存区。

$ git add “*.txt”

将整个项目的文本文件添加到暂存区。

从索引提交更改
提交过程是在执行git add命令后添加到索引的文件的暂存区中完成的。这个提交过程是通过使用git commit命令完成的。此命令将暂存更改提交到本地存储库。
句法:

$ git commit -m "Add existing file"

此提交命令用于将任何跟踪的文件添加到暂存区,并通过提供要记住的消息来提交它们。

与远程存储库同步

Git 允许用户通过在本地机器上克隆它们来对存储库执行操作。这将导致创建项目的各种不同副本。这些副本存储在本地机器上,因此用户将无法与其他开发人员同步他们的更改。为了克服这个问题,Git 允许将这些本地存储库与远程存储库同步。
这种同步可以通过使用 Git 中的两个命令来完成。这些命令是:

Push:该命令用于将当前存储库的所有提交推送到被跟踪的远程存储库。此命令可用于一次将您的存储库推送到多个存储库。

句法:

$ git push -u origin master

将我们本地存储库中属于主分支的所有内容推送到服务器(全局存储库)。

Pull: Pull 命令用于从远程存储库中获取提交并将它们存储在远程分支中。可能会出现其他用户对其存储库副本执行更改并将其与其他远程存储库一起上传的情况。但在这种情况下,您的存储库副本将过期。因此,要将您的存储库副本与远程存储库重新同步,用户只需使用git pull命令来获取远程存储库的内容。
句法:

$ git pull