在本文中,我们将讨论Python编程语言中的Git模块,用户如何在Python项目中使用它。我们还将讨论如何将Git模块与GitHub一起使用,以便与其他用户一起开展大型项目的工作。我们还将学习如何创建Git仓库,如何查看所有项目文件的历史记录,如何返回到项目的初始阶段以及如何添加新文件并在仓库中进行修改。

什么是Git?

Git模块是Python语言的分布式版本控制系统。版本控制系统是一组用于跟踪项目文件的过去的工具。用户可以通过指示Git版本控制系统在任何时候保存文件的状态来轻松保存文件的状态。之后,用户可以继续编辑项目文件并在任何状态下保存项目。保存项目在任何当前状态就像保留项目目录的备份一样。在Git模块中,保存状态被称为进行提交。

每当用户在Git模块中进行提交时,他们都会添加一条解释项目当前状态中所做所有更改的提交消息。Git模块可以显示用户在项目中所做的所有更改和提交的历史记录。Git模块的这个功能确实有助于用户了解他们所做的工作以及特别查找进入系统的所有错误。

通过使用Git模块,用户还可以比较项目文件与不同提交的文件。Git模块还允许用户轻松将任何文件或文件返回到项目的早期状态。

分布式版本控制系统与版本控制系统略有不同。早期的版本控制系统通过在用户的硬盘上保存所有提交来工作。用户的本地硬盘驱动器上的提交集合称为仓库。但是由于这个原因,用户无法与在相同代码库上工作的团队一起工作。与团队一起在同一项目上工作时,用户需要将他们的仓库保存在所有其他团队成员都可以访问的平台上。分布式版本控制系统将仓库保存在一个主服务器上,许多用户和开发人员可以共享。这还具有文件锁定的功能。

对于Git模块,大多数用户和开发人员使用GitHub作为中央仓库,在这里任何人都可以访问文件。GitHub就像一个中央地点,任何人都可以在其中分享代码,每个人都可以访问。即使在使用GitHub后,完整的仓库仍然保存在所有本地存储库中。

Git模块的基本用法

到目前为止,我们已经了解了Git模块的一般情况。本主题将讨论用户如何在其本地计算机系统上开始使用Git模块。

步骤1:创建一个新的仓库

要开始使用Git模块,用户首先需要输入他们的信息。他们必须使用git配置命令设置用户名。

$ git config -- global user.name " name of the user goes here "  
$ git config - global user.email "username@forexample.com" 

设置用户名后,用户需要一个仓库来进行工作。创建仓库非常简单。用户可以在目录中使用git初始化命令:

$ mkdir sample  
$ cd sample  
$ git init

用户可以在/home/tmp/sample/.git/中初始化空的Git仓库。

创建仓库后,用户可以在Git模块上搜索它。用户最经常使用的Git模块命令是Git状态:

$ git status  

147-1.png

此输出向用户显示了一些信息,例如他们所在的分支以及没有要提交的内容。没有要提交的内容意味着目录中没有Git模块不知道的文件。

这就是我们创建仓库的方式。

步骤2:向仓库添加新文件

在仓库中创建Git模块不知道的文件。使用编辑器创建sample.py文件,其中只包含一个打印语句。

#Sample.py  
print ( ' Adding a New File ! ' )

之后,如果用户再次运行Git状态命令,他们将看到不同的结果:

$ git status

147-2.png

在检查新文件后,Git模块将告诉用户文件未跟踪。这意味着Git表示该特定文件不是仓库的一部分,也不在版本控制下。用户可以通过将新文件添加到Git来解决此问题。使用git add命令将文件添加到Git模块中。

$ git add sample.py  
$ git status

147-3.png

现在Git知道了新文件sample.py,并将该文件列在要提交的更改下。将文件添加到Git模块后,它会将其转移到暂存区域。这意味着用户现在可以将文件提交到仓库中。

进行提交更改

每当用户进行提交更改时,他们都告诉Git模块将文件的此级别状态保存在仓库中。用户可以使用git模块的commit命令来执行此操作。命令中的-m选项通知git模块提交以下消息。如果用户在运行命令时不使用-m,则Git模块将为用户打开编辑器,以便用户创建提交消息。要提交消息,用户应该像这样编写命令:

$ git commit -m " creating sample.py " 

147-4.png

$ git status

147-5.png

用户现在可以看到,commit命令已返回一些信息,其中大部分都不太有用,但它确实告诉用户只有一个文件已更改,因为用户仅向仓库添加了一个文件。commit命令还通知了提交的简单哈希算法(775ca29)。

再次运行git状态命令后,它显示用户现在拥有干净的工作目录,这意味着文件中的所有更改都没有提交给Git。

Git模块的暂存区

Git模块有一个暂存区,通常称为索引。暂存区是Git模块用于跟踪用户希望在其下一次提交中进行更改的地方。每当用户运行Git Add命令时,如上所述,将新文件sample.py移动到暂存区,此更改将显示在git状态中。项目的文件从Git模块的未跟踪部分移动到输出的即将提交部分。

Git模块的暂存区显示了用户运行git add命令时文件的确切内容。如果用户再次修改文件,则文件将显示在git状态输出的暂存和未暂存部分。

在使用Git模块的文件的任何阶段,该文件已经提交了一次,可以在其中的文件的三个版本中工作:

  • 一个版本在用户正在编辑的硬盘上。
  • 另一个版本由Git模块存储在用户的暂存区中。
  • 该文件的存储库中存在的第三个版本。

这三个文件的所有版本都可能彼此不同。通过将更改移动到用户的暂存区,然后提交文件,用户可以将所有这些文件的版本带回同步。

.gitignore

在Git模块中,git状态命令非常实用,用户经常使用它。但有时,用户可能会发现有一些文件显示在Git模块的未跟踪部分,而且他们不希望Git模块看到它们。为此,用户可以使用.gitignore文件。

例如:

#Let's create a new Python file of the project in the same directory called example.py:  
#example.py  
Def get_example ( ) :  
return " cow " 

之后,修改sample.py文件以包含example.py并调用其函数:

#sample.py  
import example   
 example = example.get_example ( )  
print ( " Animal { } " .format (example) )

每当用户导入本地模块时,Python都会开始将模块编译成字节码并将文件保存在其文件系统中。在Python2中,在将模块编译成字节码之后,它将以example.pyc的形式保存文件。但是在Python3的情况下,它将生成一个_pyache_目录并将.pyc文件存储在其中。

例如:

147-6.png
147-7.png

在执行此操作后,如果用户运行git状态命令,他们将看到未跟踪部分中的特定目录。用户还可以看到他们的example.py文件位于未跟踪部分,但是他们对sample.py所做的更改位于新部分,称为“未暂存的更改”。这个部分意味着用户先前所做的更改尚未添加到Git模块的暂存区。

例如:

$ git status

147-8.png

要将example.py sample.py文件添加到仓库中,用户需要做与之前相同的事情。

例如:

$ git add example.py sample.py  
$ git status

147-9.png

现在,用户应该提交更改并完成清理:

$ git commit -m " add example module "  

147-10.png

无论用户何时运行git状态命令,他们都将看到如下所示的_pyache_目录:

$ git status

147-11.png

如果用户希望忽略_pyache_目录及其内容,则必须在其仓库中添加一个.gitignore文件。这是一个非常简单的过程。用户必须在他们选择的编辑器中编辑文件。

# .gitignore  
__pycache__ 

然后,用户必须运行git状态命令,他们将不再看到_pyache_目录及其内容。尽管用户将看到新的.gitignore!文件。

例如:

$ git status

147-12.png

.gitignore文件只是一个普通的文本文件,可以像其他普通文件一样添加到仓库中。

例如:

$ git add .gitignore  
$ git commit - add " create .gitignore "   

147-13.png

.gitignore文件中还有一个目录,即用户在其虚拟环境中存储的目录。此目录称为virtualenvs。通常,virtualenvs目录称为env或venv。

用户可以将这些添加到项目的.gitignore文件中。通过这样做,存储库中的项目文件或目录将被忽略。如果没有文件或目录存在,那么不会采取任何操作。

用户还可以在其主目录中存储全局.gitignore文件。如果用户的编辑器使用本地目录保存临时文件或创建本地计算机系统中的备份文件,这个过程非常简单。

例如:

# .gitignore   
__pycache__  
Venv  
Venv /  
Venv.bak /  
env /  
env.bak /  
.pytest_cache  
.cover /  
.coverage  

用户不应将什么添加到Git仓库?

当用户处于使用任何版本控制工具的初始阶段,最有可能是Git模块时,他们可能希望将项目中的每种类型的文件都存储在Git仓库中,但这是一个错误。Git模块具有限制并且由于安全原因而引发了一些文件和数据的限制,因此用户在向git仓库中添加文件和信息时会面临一些限制。

所有版本控制系统的基本规则是,用户应仅将源文件添加到版本控制系统中,永远不要将生成的文件添加到版本控制系统中。

源文件是用户在编辑器中键入时创建的任何文件。生成的文件是计算源文件时计算机创建的文件。

例如:

Sample.py是源文件,而

Sample.pyc是生成的文件。

不包括生成的文件在Git仓库中的原因:

  • 在仓库中存储生成的文件是浪费空间和时间。可以再次创建生成的文件,可能需要以不同的格式重新创建。如果用户1使用IronPython或Cython,而用户2使用Jython解释器,则.pyc文件将彼此不同。提交.pyc文件的一种格式可能会在仓库中创建冲突。
  • 生成的文件比项目的源文件大。将生成的文件添加到Git仓库意味着所有其他用户和开发人员也必须下载文件并存储它们,即使他们不需要这些文件。
  • Git仓库的另一条规则是,用户应谨慎地提交二进制文件,并应避免提交大型文件。

Git模块仓库不会保存用户提交的项目文件的完整副本。相反,存储库使用基于文件的不同版本的算法。这减少了文件所需的存储量。但是,此算法不适用于二进制文件,因为二进制文件(例如MP3或JPG文件)没有很好的差异工具。对于二进制文件,每当用户进行提交时,Git模块仓库都必须保存项目的完整文件。

当用户在Git模块上工作或在GitHub仓库中存储文件时,不要在仓库中保存机密信息,同时向公开共享它。

Git日志

Git日志是Git模块的命令。Git日志用于查看用户进行的提交的历史记录。

例如:

$ git log

147-14.png

用户可以查看用户在git仓库中进行的提交的历史记录。所有提交消息将按照它们进行的顺序显示。提交的开始将由单词"commit"标识,并在提交的简单哈希后面。Git日志命令将提供每个简单哈希区域的历史记录。

结论

本文讨论了Git模块、版本控制系统、如何在Git中进行提交以及其仓库功能、向Git模块和GitHub的仓库中添加文件和信息的规则。不同类型的Git命令,例如.gitignore、git日志、git add、git状态等,以及它们在项目和目录文件中的使用。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程