git安裝與基本命令
一、前言
GibHub的名字源於Git,Git是一個分散式版本控制系統,讓程式設計師團隊能夠協作開發專案,Git幫助大家管理為專案所做的工作,避免一個人所做的修改影響其他人所做的修改。你在專案中實現一個新功能的時候,Git將跟蹤你對每個檔案所做的修改。確定程式碼可行後,你將提交所做的修改,而Git將記錄專案最新的狀態,如果你犯了錯,想撤銷所做的修改,可輕鬆的返回以前的任何可行狀態。GitHub上的專案都儲存在倉庫中,後者包含與專案相關聯的一切:程式碼,專案參與者的資訊,問題和bug報告等。
二、下載
直接到官網下載 .exe 結尾的檔案
三、安裝過程
四、配置
Git跟蹤誰修改了專案,哪怕參與專案開發的只有一個人。為此,Git需要知道你的使用者名稱和電子郵件。你必須提供使用者名稱,但可以使用虛構的電子郵件地址(也就是建立一個賬戶
git config --global user.name "zhanzhuang"
git config --global user.email "[email protected]"
因為Git是分散式版本控制系統,所以,每個機器都必須自報家門:你的名字和Email地址。你也許會擔心,如果有人故意冒充別人怎麼辦?這個不必擔心,首先我們相信大家都是善良無知的群眾,其次,真的有冒充的也是有辦法可查的。
注意git config
命令的--global
引數,用了這個引數,表示你這臺機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的使用者名稱和Email地址。
五、建立專案
我們來建立一個要進行版本控制的專案(又稱版本庫)。在你的系統建立一個資料夾,並將其命名為learngit。
我建立learngit的程式如下:
mkdir learngit #建立檔案learngit
cd learngit #進入learngit檔案裡面
pwd #顯示learngit的存在目錄
我建立了一個hrllo.world.py程式,如下:
print("hello world")
六、忽略檔案
***
七、初始化倉庫
我們建立了一個檔案,並通過git init
命令把這個目錄變成Git可以管理的倉庫:
$ git init Initialized empty Git repository in C:/Users/learngit/.git/
瞬間Git就把倉庫建好了,而且告訴你是一個空的倉庫(empty Git repository),細心的讀者可以發現當前目錄下多了一個.git
的目錄,這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裡面的檔案,不然改亂了,就把Git倉庫給破壞了。要是刪除這個東西,則丟棄專案的所有記錄。
如果你沒有看到.git
目錄,那是因為這個目錄預設是隱藏的,用ls -ah
命令就可以看見。
也不一定必須在空目錄下建立Git倉庫,選擇一個已經有東西的目錄也是可以的。不過,不建議你使用自己正在開發的公司專案來學習Git,否則造成的一切後果概不負責。
八、檢查狀態
$ git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) hello_world.py nothing added to commit but untracked files present (use "git add" to track)
在Git中,分支是專案的一個版本,從這裡的輸出我們可以知道,我麼位於分支的,master
我們每次檢視專案的狀態時候,輸出的都是我們位於分支master上,接下里的輸出表明,我們將進行初始專案的日叫,提交是專案在特定時間的快照。
Git指出了專案中未被跟蹤的檔案,因為我們還沒有告訴他要跟蹤那些檔案,接下里我們被告知沒有任何東西新增到當前提交裡面,但我們可能需要將為跟蹤的檔案加入倉庫
九:將檔案加入到倉庫
git add * (將所有檔案加入到倉庫)
十:執行提交
$ git commit -m "Started project"
[master (root-commit) 5d6ceca] Started project
1 file changed, 1 insertion(+)
create mode 100644 hello_world.py
我們在執行 git commit -m "Started project" 的時候以拍攝專案的快照。標誌-m 讓Git接下里的訊息(“Started project")記錄到專案中的歷史記錄中,輸出表明我們在分支master 上,而且有一個檔案被修改了
簡單解釋一下git commit
命令,-m
後面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄裡方便地找到改動記錄。
十一、檢視提交歷史
$ git log commit 5d6cecad80427924b94b14c6fd2bb82a4fa86840 (HEAD -> master) Author: username <xxxxxxxxxx.example.com> Date: Sat Dec 9 20:16:17 2017 +0800 Started project
我們每次提交的時候,Git都會生成一個包含40字元的獨一無二的引用ID,它記錄提交是誰執行的,提交的時間以及提交的指定訊息,並非在任何情況下你都需要所有的這些資訊,因此Git提供一個選項,讓我們能夠列印提交歷史條目的更簡單的版本。
$ git log --pretty=oneline
5d6cecad80427924b94b14c6fd2bb82a4fa86840 (HEAD -> master) Started projectvvvv
標誌 --pretty=oneline 指定顯示一項最重要的資訊,提交的引用ID以及為提交記錄的訊息。
十二、第二次提交
為了顯示版本控制的強大,我們需要對專案進行修改,並提交所做的修改。為此,我們在檔案hello.world.py中再新增一行程式碼。
print("hello world")
print("hello git")
如果我們檢視專案的狀態,將發現Git注意到這個檔案的變化
$ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: hello_world.py no changes added to commit (use "git add" and/or "git commit -a")
這個之處了我們當前所在的分支為master,其中做出修改的檔案是hello_world.py,而且指出所做的修改還沒有提交。
接下來我們提交所做操作,並在檢視操作。
這一步,我們執行了提交,並且在執行命令git commit 的時候指定了標誌-am.標誌-a 讓Git 將倉庫中所有修改了的檔案都加入當前提交中,(如果我們兩次提交之間加入了新檔案,我們執行get add . 操作,將新檔案加入到倉庫中)標誌-m讓Git咱提交歷史中記錄一條訊息。
$ git commit -am "Extrended greeting."
[master b4ee15d] Extrended greeting.
1 file changed, 2 insertions(+), 1 deletion(-)
$ git status On branch master nothing to commit, working tree clean
$ git log --pretty=oneline b4ee15ddf5274f488db8c74c327065c6f331ec5e (HEAD -> master) Extrended greeting. 5d6cecad80427924b94b14c6fd2bb82a4fa86840 Started project
我們在檢視專案的狀態的時候,發現工作目錄也是乾淨的,最後我們發現提交歷史中包含兩個提交。