1. 程式人生 > >git安裝與基本命令

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

  我們在檢視專案的狀態的時候,發現工作目錄也是乾淨的,最後我們發現提交歷史中包含兩個提交。