Git是最流行的版本控制系统 ( VCS ),开发人员和开发团队使用它来跟踪对源代码所做的更改。事实上,它是DevOps中使用最流行的版本控制系统,被广泛应用于Linux系统当中。
众所周知,版本控制系统是一种软件,用于在称为存储库的特殊数据库中跟踪或记录随时间对软件代码所做的更改。使用Git,可以跟踪项目历史并查看进行了哪些更改以及进行更改的人。另外,还可以回滚更改以返回到原始代码。此外,Git允许多人在同一个项目上进行协作,而不管他们身在何处。
版本控制系统一般可以分为两类:集中式和分布式。
什么是集中式版本控制系统
在集中式系统中,所有用户都连接到中央服务器以获取软件代码的副本并与他人共享。集中式版本控制系统的示例包括在Apache许可下分发的Subversion和 Microsoft Team Foundation Server (Microsoft TFS)。
集中式VCS的缺点是存在单点故障。当中央服务器出现故障时,团队成员将无法再协作完成该项目。
什么是分布式版本控制系统
使用分布式系统,每个团队成员都可以在他们的本地计算机上获得代码项目的副本。如果中央服务器出现故障,用户可以毫无问题地与他人同步软件代码。
分布式版本控制系统的示例包括Git和Mercurial。
为什么使用Git?
在我们提到的所有版本控制系统中,Git是最流行和使用最广泛的VCS,它免费且开源、可扩展、快速且可靠。用户可以跟踪对代码所做的更改,并轻松地与其他团队成员就项目进行协作。此外,分布和集中式等操作在Git中比在Mercurial或任何其它VCS中容易得多。
如今,Git无处不在,小型公司和大型企业都使用它来高效地管理软件代码。出于这个原因,它是开发人员或那些进入软件开发的人最需要的技能之一。因此,如果你正在寻找一份软件开发人员的工作,请记住Git是首选。
在本教程中,小编主要介绍Git基础知识以及如何有效地管理代码。
Git和GitHub差异
谈到Git就不能不提到GitHub,这两者很容易联系在一起,而且经常齐头并进。事实上,很多人认为Git和GitHub是一样的。然而,这是两个相互结合的独立事物。
GitHub是Git存储库的代码托管平台,它本质上是一个网站,开发人员和项目经理可以在其中托管他们的软件项目。它使团队成员或开发人员可以轻松协调和跟踪对代码所做的更改,并在需要时进行更新。通过这样做,GitHub促进了协作和透明度,并帮助团队成员在任何地方工作并及时了解对代码所做最新更改。
在GitHub中,包可以公开发布,允许外界访问,也可以在团队成员内部私下发布。公开共享后,用户可以下载代码并在他们个人计算机上试用。总之,GitHub是一个在线代码托管平台,它提供了一个很酷的UI,并允许用户托管远程Git存储库并与来自任何地方的其他开发人员协作。
对于Git来说,它负责处理版本控制操作,例如推送和合并代码、进行提交、克隆存储库等。所以二者是有区别的。
在Linux系统上安装Git
在开始使用Git之前,首先需要安装它。如果你正在运行Ubuntu或基于Debian发行版,请运行以下apt命令来安装:
$ sudo apt update $ sudo apt install git -y
对于基于Red Hat的发行版,例如RHEL、Fedora、CentOS Stream、AlmaLinux和Rocky Linux,执行以下dnf命令安装:
$ sudo dnf update $ sudo dnf install git -y
要确认Git已安装,请运行以下命令:
$ git --version git version 2.34.1
初始化Git存储库
使用git的第一步是初始化一个git存储库,这实际上是将本地系统上的一个目录转换为一个git存储库,你的所有项目文件和代码在被推送到GitHub之前将存储在该存储库中。为了演示这一点,这里将创建一个名为test_repo的目录并导航到其中。
$ mkdir test_repo $ cd test_repo
要初始化存储库,请运行以下命令:
$ git init
这时将收到一堆提示消息,并且在输出的末尾,一般会看到一条通知,表明Git存储库已在默认情况下称为master的分支上初始化。
将更改提交到Git存储库
初始化目录后,将创建一个名为.git
的隐藏目录,其中包含Git跟踪代码更改所需的所有文件。要查看此目录,请运行带有-la
选项的ls命令:
$ ls -la
需要注意的是,只有在第一次提交更改时才会跟踪项目。
配置Git存储库
一旦初始化了Git存储库,下一步就是为Git设置一些配置变量。这里将添加与提交关联的用户名和电子邮件地址。要将用户名和电子邮件地址添加到当前用户的所有提交,请运行以下命令。请务必提供首选姓名和电子邮件地址。
$ git config --global user.name "你的名字" $ git config --global user.email "邮件地址"
要确认变量集,请运行命令:
$ git config --list
将文件添加到Git存储库
要更改git存储库,首先运行命令git add
,然后运行git commit
.。git add命令将文件添加到暂存区。这本质上是一个特殊区域,我们在其中为下一次提交提出更改建议。在本次设置中,有一个名为app.py的Python文件。要将此文件添加到暂存区,将运行以下命令:
$ git add app.py
如果有多个项目文件,可以一次添加所有这些文件,如下所示:
$ git add -A 或者 $ git add --all
将所有文件添加到暂存区后,使用git commit命令将它们提交到存储库,类似于项目的快照:
$ git commit -m "Some Message"
注意:-m
选项允许用户将标签或消息附加到commit,引号之间的字符串是与提交关联的消息。
以下输出表明我们已成功将更改提交到Git存储库:
要检查提交状态,请运行以下命令:
$ git status
如果没有待处理的提交,将收到没有要提交的通知。
现在,再创建两个文件并检查提交的状态:
$ echo "Hello there" > file1.txt $ echo "Let us learn Git" > file2.txt
接下来,显示暂存区的状态。
$ git status
这一次,新添加的文件将显示为红色,并标记为“untracked”。为了让Git跟踪它们,需要将它们添加到暂存区:
要一次性添加所有文件,请运行以下命令:
$ git add .
注意:这会递归地添加整个目录,因此应谨慎行事。但是,由于这里只有两个文件,所以无论如何都会使用它。
接下来,提交所做的更改:
$ git commit -m "Second Commit"
现在,简单尝试一些更重要的操作,这里将修改一个文件。
$ echo "Git is a popular Version Control System" >> file2.txt
由于所做的更改尚未提交,该文件再次显示为红色。
所以,需要将修改后的文件添加到暂存区:
$ git add file2.txt $ git status
当检查暂存区的状态时,文件显示为绿色并准备提交。
从Git存储库中删除文件
假设我们的项目中不再需要file2.txt ,因为它有未使用的代码。可以使用rm命令将其删除,如下所示:
$ rm file2.txt
当检查状态时,会看到已删除的文件被标记为红色,并且尚未提交更改。
$ git status
这样已经从工作目录中删除了file2.txt 。但是,它仍然存在于暂存区。要确认这一点,请运行以下命令:
$ git ls-files
要删除暂存区文件,请运行git add命令,如下所示:
$ git add file2.txt
再次列出暂存区中的文件:
$ git ls-files
这一次,看到暂存区中不再存在file2.txt 。当检查状态时,可以看到更改已准备好提交。
所以现在让确定所做的改变:
$ git commit -m "Remove unused code files"
将本地仓库推送到GitHub
准备好本地存储库后,现在可以选择将您的项目推送到GitHub以进行协作并让其他用户访问项目。但首先是第一件事。如果还没有GitHub帐户,则需要创建一个账户。
账号创建成功之后,接下来需要创建一个新的空存储库。这是你要将本地存储库推送到的存储库。因此,单击“New”按钮:
填写存储库名称并将其设置为“Public”。你可以选择是否初始化README文件,这是一个简要描述你的代码内容的文件。
然后单击“Create repository”按钮以使用提供的详细信息创建存储库。在此示例中,创建了一个名为“ my-test-project ”的存储库。
接下来将提供快速设置,其中包括指向你新创建的存储库的链接以及有关如何将本地存储库推送到GitHub的说明。
下一步是使用SSH密钥在命令行上启用对GitHub的身份验证。为此,请单击右上角的个人资料图标,然后选择“Settings”按钮:
接下来,导航到“ SSH和GPG ”密钥部分,然后单击“New SSH Key”按钮,如下图所示:
接下来,复制公共SSH密钥并为您的密钥提供一个好记标题。然后按“Add SSH Key”按钮:
现在一切就绪,可以将存储库推送到GitHub。使用命令语法git remote add
添加远程GitHub存储库。
$ git remote add origin [此处为远程存储库URL]
在上面的语法中,’ remote ‘ 代表远程存储库版本,而’ origin ‘ 是给远程服务器的名称。然后,运行git push命令将本地仓库推送到GitHub。在这里,master是默认的分支名称。
$ git push -u origin master
当访问Github上的存储库时,将看到所有项目文件列表:
接下来,如果想将新文件添加到存储库,只需重复将文件添加到暂存区、提交并将更改推送到存储库的相同步骤即可:
$ git add -A $ git commit -m 'Added my project' $ git push -u origin main
使用GitHub上所做的更改更新本地存储库
git pull
命令用于使用远程存储库上的上游更改更新本地存储库。它实质上是下载对GitHub上的代码所做的更改,并相应地更新系统上的本地存储库。它结合git fetch
和git merge
命令。
在本文示例中,编辑了托管在GitHub上的远程存储库中的README文件。为确保在本地存储库中拥有相同的副本,将运行以下命令:
$ git pull [此处为远程存储库URL]
克隆Git存储库
git clone
命令会在GitHub存储库上下载项目文件的精确副本,你可以使用以下语法在任何系统或目录上克隆公共存储库。
$ git clone [此处为远程存储库URL]
在 GitHub项目的页面上,单击“Code”并复制下面突出显示的URL。
然后输入该URL地址克隆Github存储库,这将下载整个存储库以及项目文件。
总结
在本文中,主要介绍了Git并说明了用于在Git存储库中创建和管理文件的基本命令,同时也简单说明了将存储库推送到GitHub以进行协作,希望能够帮助大家更好的了解Git。
Git是一种分布式版本控制系统,通常用于管理源代码和跟踪软件开发项目中的变更。它由Linux的创建者Linus Torvalds于2005年创建。Git的设计目标是快速、可扩展和高效,因此在开发人员和各种规模的团队中广受欢迎。