參考:《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 moduleprint('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.py2、整體添加
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)。
未完待續。。。