Git 是一种分布式版本控制软件,于 2005 年开发,作为一种工具,通过促进程序员之间的协调来简化 Linux 内核的开发。如今,Git 已成为世界上最流行的版本控制软件之一。
Git 可以从命令行界面使用,并允许跟踪任何数据集的更改。Git 软件的优势在于其高速、数据完整性和工作流支持。使用 Git,放置在任何设备上的每个数据文件夹都是一个真正的“存储库”,其中包含历史记录和跟踪所有更改的可能性。
本指南将解释如何在主要 Linux 发行版上安装和使用 Git,主要参考 Ubuntu 18.04。
首先,通过 SSH 连接连接到您的服务器。如果您还没有这样做,建议按照我们的指南使用 SSH 协议进行安全连接。如果是本地服务器,请转到下一步并打开服务器的终端。
更新分发存储库并开始通过 apt-get 安装 Git:
$ apt-get update && apt-get install git
该过程完成后,将安装 Git。要验证其成功安装和软件版本,请使用--version参数:
$ git –version
最后,要开始使用Git,请配置将与您创建的每个包关联的用户信息(姓名和电子邮件地址):
$ git config --global user.name "Name Surname"
$ git config --global user.email "username@domain.com"
下面重点介绍软件的各种功能,报告每个命令的语法。这些不同的功能已经在 Ubuntu 上进行了测试,尽管它们对任何其他 Linux 发行版都有效。
Git 的主要目的是鼓励给定项目的多个工作流之间的协作。因此,首先要做的是初始化一个工作空间,创建一个空的本地“存储库”或远程获取一个。
在第一种情况下,要创建或重新初始化新的“存储库”,请使用init命令:
$ git init
此命令将创建一个.git文件夹,其中包含repository所需的所有文件。该文件夹将包含构成要跟踪的项目的所有文件。所有新文件最初都不会被跟踪,也就是说它们不会被跟踪。这意味着加载快照时不会考虑它们。
如果您想开始跟踪文件,请使用add命令,然后是commit,或简要说明您所包含的内容:
$ git add <FilePath/FileName>
$ git commit -m ‘<Description>’
在下图 中,一个新的repository的初始化示例和一个包含FileTestA文件的示例,以及显示来自终端报告操作成功的输出。

但是,如果您想为已经存在的repository做出贡献,请使用clone命令。使用此命令,Git 会收到指定服务器上存在的所有项目文件版本的副本:
$ git clone <URL> <Destination_Folder>
代替 指定下载包的地址。而不是 而是在适当的情况下指示保存下载文件的路径和文件夹。如果您不指定任何内容,这些文件将保存在Home文件夹中。
至于 URL,Git 可以使用多种传输协议来下载“存储库”:
· Git 协议(git://);
HTTP 协议(http:// 或 https://);
SSH 协议 (ssh: //);
用户和服务器(用户名@服务器:/path.git)。
工作簿中的每个文件都可以具有untracked、tracked、unmodified和modified的状态。
如上一段所示,具有repository状态的文件是工作目录中不存在于快照中的所有文件(在创建新的repository时)。
另一方面,在克隆现有的repository时,所有下载文件的基本状态都是tracked。因此,这些文件也可能在下载后未编辑的情况下是unmodified的,或者在自上次提交后发生更改的情况下是modified。
要检查文件的状态,请使用status命令:
$ git status
下图显示了终端的屏幕截图,其中已经初始化了一个新项目、添加了一个文件并创建了第一个提交。通过使用status命令,终端指定没有要更新的修改文件。从绿线开始,修改文件后,再次执行status命令。

新修改的文件现在出现在标题Changes not staged for commit下,这意味着跟踪的文件在工作簿中发生了更改,但尚未出现在舞台上。
因此,将有可能以两种不同的方式进行:
更新舞台上的文件(重复跟踪过程,即需要git add命令);
放弃更改(使用git checkout )。
假设我们想通过运行git add命令并重复git status来评估它的状态来暂存刚刚编辑的文件。

然后该文件将被修改,但已准备好提交(图 3 中的绿色矩形)。如果在提交之前对文件进行了进一步修改并检查了其状态,则两者都将被指示为ready-to-commit文件和尚未上台的文件(图 3 中的红色矩形)。
发生这种情况是因为舞台上的文件是没有修改的文件(如果现在执行commit命令,将提交的文件),而外部文件是刚刚修改的文件。要提交此进一步修改,请再次添加它(图 3 中的蓝色矩形)。
如果您不希望自动添加某些文件,例如日志文件,请创建一个.gitignore文件,其中包含要排除的文件列表。
要自动包含某种类型的模式,而不是列出要忽略的所有单个文件,包括所有文件夹并使用特殊字符。模式的规则是:
空行或以#开头的行将被自动忽略;
斜线/可用于表示子文件夹;
利用 ! 拒绝花纹的字;
可以使用全局模式。
glob 模式是一种用于表示一组字符串的语法。最常见的是:
*) 表示任何字符串(通常用于标记具有特定扩展名的所有文件);?) 表示任何字符,方括号 ([...]) 用于指定一系列字符或数字。一旦文件被放置到暂存区(通过git add命令)提交更改。提交用于记录保存在您的暂存区中的快照。
任何没有放在暂存区上的东西,都不会在提交中,但当然会在本地文件夹中保持修改状态。
最简单的提交方法是使用以下命令:
$ git commit
通过这样做,将打开显示git状态命令的最后输出且第一行为空白的文本编辑器:在这里可以输入您的提交消息,以便适当地指示您正在进行的更改。
你刚刚创建了你的第一个提交!在结束本指南之前,将显示进一步删除或修改文件的过程。
要删除 Git 文件,不仅要从跟踪的文件中删除它,还要再次重复提交以保存更改。实际上,只需从文件夹中删除文件,生成的文件就会显示为不在舞台上的文件。
通过使用命令 git rm后跟文件的路径和名称,文件的删除将被暂存并在下一次提交后完全消失:
$ git rm <File>
如果您已经修改文件并将其添加到索引中,则可以通过添加-f选项来强制删除它:
$ git rm -f <File>
但是,如果您只想删除错误插入暂存区的文件,同时将其保留在磁盘上,则可以使用--cached选项:
$ git rm --cached <File>
您可能想要做的另一件事是移动或重命名文件。这不是一个自动操作,因为 Git 没有明确地跟踪文件移动,即没有生成元数据来跟踪重命名选项。
可以使用已知命令执行此操作,首先更改名称,然后从 Git 中删除上一个文件 (git rm),然后重新添加(git add)。
为了避免每次重命名/移动都执行这一系列命令,Git 有自己的特定命令git mv,它同时提供与上面列出的三个相同的结果。
完整的语法如下所示:
$ git mv <OldPath/OldName> <NewPath/NewName>
此命令提供与以下三个完全相同的结果:
$ mv <OldPath/OldName> <NewPath/NewName>
$ git rm <OldPath/OldName>
$ git add <NewPath/NewName>
通过这样做,文件将被重命名和移动,并且已经在暂存区,准备提交。要验证操作是否成功,请运行git status命令,该命令将在更改列表中释放一个名为renamed的部分提交,其中将列出所有已更改名称或路径的文件。