参考:《Python编程从入门到实践》
- 前言
- 1、安装、配置 Git
- 1.1 在Linux系统中安装Git
- 1.2 在OS X系统中安装Git
- 1.3 在Windows系统中安装Git
- 1.4 配置Git
- 2、创建项目
- 3、忽略文件
- 4、初始化仓库
- 5、检查状态
- 6、将文件加入到仓库中
- 7、执行提交
- 8、查看提交历史
前言
版本控制软件让你能够拍摄处于可行状态的项目的快照。修改项目(如实现新功能)后,如果项目不能正常运行,可恢复到前一个可行状态。
通过使用版本控制软件,你可以无忧无虑地改进项目,不用担心项目因你犯了错而遭到破坏。对大型项目来说,这显得尤其重要,但对于较小的项目,哪怕是只包含一个文件的程序,这也大有裨益。
在本文中,你将学习到如何安装Git,以及如何使用它来对当前开发的程序进行版本控制。Git 是当前最流行的版本控制软件,它包含很多高级工具,可帮助团队协作开发大型项目,但其最基本的功能也非常适合独立开发人员使用。Git通过跟踪对项目中的每个文件的修改来实现版本控制,如果你犯了错,只需恢复到保存的前一个状态即可。
说明:笔者使用的是CentOS 7的64位 Linux环境
1、安装、配置 Git
Git可在所有操作系统上运行,但其安装方法因操作系统而异。
1.1 在Linux系统中安装Git
要在Linux系统中安装Git,执行如下命令:
CentOS:
$ sudo yum install git
Ubuntu:
$ sudo apt-get install git
安装完成后可以通过下述命令查看安装的版本:
git --version
1.2 在OS X系统中安装Git
OS X系统可能自带Git,因此在安装前先执行命令:‘git --version’。如果在输出中查看到具体的版本号,说明系统已经安装了Git;如果看到的是提示安装或升级Git的信息,根据屏幕显示的提示信息操作即可。
也可以访问链接:https://git-scm.com/
,单击链接Downloads,再点击适合你所用的系统的安装程序。
1.3 在Windows系统中安装Git
访问:https://gitforwindows.org/
,单击Download。
1.4 配置Git
Git跟踪谁修改了项目,哪怕参与项目开发的人只有一个。为此,Git需要知道你的的用户名和电子邮件地址。用户必须提供用户名,但是可以使用虚构的电子邮件地址:
$ git config --global user.name "wsy"
$ git config --global user.email "username@example.com"
如果忘了这一步,在首次提交时,Git将提示用户提供这些信息
2、创建项目
- 在所用系统中创建一个名为
git_practice
的文件夹作为项目目录; - 在项目目录下创建空文件:module.py
- 在项目目录下创建一个简单的python程序:hello_world.py 作为需要跟踪的项目文件,输入以下内容:
import module
print('Hello Git world!')
注:这里之所以需要创建一个空的module.py文件是因为在程序hello_world.py要引用他,这样在程序运行后就会生成一个__pycache__文件夹,这个文件夹我们后续不需要让Git跟踪它,所以要对它做忽略操作。
关于__pycache__文件夹:python解释器会对 *.py 文件进行编译,并且将编译结果保存到__pycache__目录下。在下次执行工程时,如果发现这个 *.py 没有被修改过,那么就会跳过编译这一步,直接执行在__pycache__中已经完成编译的.pyc文件。而且,只有被导入的module才会生成对应的 *.pyc文件,生成的 *.pyc 文件的命名规则是: ‘module.interpreter_version.pyc’。这样做的好处是,如果需要执行比较大的工程文件,那么会节约很多时间。
整个创建流程如下:
3、忽略文件
上面说过,扩展名为 .pyc 的文件是根据 .py 文件自动生成的,因此无需让Git跟踪它们。这些文件存储在 pycache 目录中。
为了让Git忽略__pycache__目录,执行下属操作:
- 在项目目录下创建一个名为
.gitignore
的特殊文件,该文件以句点打头,且没有扩展名; - 在
.gitignore
中添加下面一行内容:
__pycache__/
这让Git忽略__pycache__目录中的所有文件。使用 .gitignore 可避免项目混乱,开发起来更容易。
注:如果你使用的编译器是 python2.7,请将这行内容改为
*.pyc
。因为python2.7不会自动创建目录 pycache,它将每个.pyc文件都存储在相应.py文件所在目录中。其中的星号(*)让Git忽略所有扩展名为.pyc的文件。
流程如下:
4、初始化仓库
至此,我们创建了一个目录,其中包含一个python文件和一个 .gitignore 文件,下面可以初始化一个Git仓库了。为此,打开一个终端窗口,切换到文件夹 git_practice,并执行如下命令:
git init
如下:
输出表明,Git在git_practice中初始化了一个空仓库。仓库里是程序中被Git主动跟踪的一组文件。Git用来管理仓库的文件都存储在隐藏的 *.git/
中,用户无需与该目录打交道,但是千万不能删除该目录,否则将丢失项目的所有历史记录。
5、检查状态
执行其它操作前,先执行下述命令来看一下项目的状态:
git status
在Git中,分支(master)是项目的一个版本。从上述输出可以看出,目前项目位于分支master上。用户每次查看项目状态时,输出都将指出你位于分支master上。接下来的输出表明,我们将进行初始提交。提交是项目在特定时间点的快照。
接着,Git指出了项目中未被跟踪的文件,因为到目前为止我们还没有告诉它要跟踪哪些文件。
最后,输出提示我们“提交为空,但是存在尚未跟踪的文件”,并告知如何建立跟踪,即使用 git add。
所以下面的任务就是将文件加入到仓库中。
6、将文件加入到仓库中
下面将上述指出的文件加入到仓库中,并再次检查状态。
可以通过下述两种方法进行添加:
1、逐个文件添加
git add .gitignore
git add hello_world.py
git add module.py
2、整体添加
git add .
命令 git add .
将项目中未被跟踪的所有文件都加入到仓库中,不需要一个文件一个文件的添加,这对于改动文件较多的项目来说很方便。它不提交这些文件,而只是让Git开始关注它们。下面我们再检查项目状态时,发现Git找出了需要提交的一些修改,且标出了新添加到仓库中的文件。
也可以理解为,通过 git add 将文件从工作目录添加到了一个暂存区。
7、执行提交
下面开始执行第一次提交,提交结束后再次查看项目状态,如下:
我们执行命令:commit -m "Started project."
以拍摄项目的快照。其中,标志 -m 让Git将接下来的消息(Started project.)记录到项目的历史记录中(也可以把这个消息当成是本次提交的一个title,用于辨识)。输出表明我们在分支 master上,且有3个文件被修改了。
现在我们再检查状态时,发现我们在分支master上,且工作目录是干净的。这是用户每次提交项目的可行状态时都希望看到的结果。如果显示的消息不是这样的,请仔细阅读,很可能是在提交前忘记了添加文件。
8、查看提交历史
Git记录所有的项目提交,通过命令 git log
即可查看提交历史,下面来看一下提交历史:
用户每次提交时,Git都会生成一个包含40字符的独一无二的引用ID,它记录提交是谁执行的、提交的时间以及提交时指定的消息。并非在任何情况下你都需要所有的这些信息,因此Git提供了一个选项,让你能够打印提交历史条目更加简单的版本:
标志 --pretty=oneline
指定显示两项最重要的信息:提交的引用ID以及为提交记录的消息(title)。
未完待续。。。