Git 安裝與使用
一、基本操作
1. 下載安裝
下載對應(yīng)的Git版本安裝
2. 配置Git
打開Git bash,配置用戶名及郵箱
$ git config --global user.name "My Name"
$ git config --global user.email "myEmail@example.com"
3. 創(chuàng)建一個新倉庫 – git init
git會把所有文件以及歷史記錄直接記錄成一個文件夾保存在你的項目中。
創(chuàng)建一個新的倉庫,首先要去到項目路徑下,執(zhí)行git init。這時Git會創(chuàng)建一個隱藏的文件夾.git,所有的歷史和配置信息都儲存在其中。
$ cd /c/Users/zgldo/doinggit
$ git init
命令行出現(xiàn)
Initialized empty Git repository in /c/Users/zgldo/doinggit/.git/
這說明我們的倉庫已經(jīng)建立好了,但現(xiàn)在是空的,試著新建一個文件(例如:README.md)到這個文件夾里。
4. 檢查狀態(tài) – git status
4.1 git status說明
Git status是另一個非常重要的命令,它反饋給我們倉庫當(dāng)前狀態(tài)的信息:是否為最新代碼,有什么更新等等。在我們新建的倉庫中執(zhí)行git status會得到以下內(nèi)容:


反饋信息告訴我們,(例如:README.md)尚未跟蹤,這是說這個文件是新的,git不知道是應(yīng)該跟蹤它的變動還是直接忽略。為了跟蹤我們的新文件,我們需要暫存它。
4.2 中文顯示問題
在默認設(shè)置下,中文文件名在工作區(qū)狀態(tài)輸出,中文名不能正確顯示,而是顯示為八進制的字符編碼。如上圖。
通過將git配置變量 core.quotepath 設(shè)置為false,就可以解決中文文件名稱在這些Git命令輸出中的顯示問題:
$ git config --global core.quotepath false

5. 暫存 – git add
Git有個概念叫“暫存區(qū)“,你可以把它看成一塊空白的畫布,包裹著所有你可能會提交的變動。它一開始是空的,可以通過 git add命令添加內(nèi)容,最后使用 git commit 提交(創(chuàng)建一個快照)。
這個例子中只有一個文件,讓我們先add它:
$ git add README.md
如果需要提交目錄下的所有內(nèi)容,可以這樣做:
$ git add -A # 提交所有變化
$ git add -u # 提交被修改(modified)和被刪除(deleted)文件,不包括新文件(new)
$ git add . # 提交新文件(new)和被修改(modified)文件,不包括被刪除(deleted)文件
再次使用git status查看狀態(tài)試試:

我們的文件已經(jīng)準備好可以提交了。狀態(tài)信息還告訴我們暫存區(qū)文件發(fā)生了什么變動,這里我們新增了一個文件,同樣可以做修改和刪除。取決于我們在上一次git add之后發(fā)生了什么。
6.提交 – git commit
一次提交代表著我們的倉庫到了一個新的狀態(tài),就像是一個快照,允許我們像使用時光機一樣回到之前的某個時間點。
創(chuàng)建提交,需要我們至少在到暫存區(qū)有一次修改(剛才我們做了git add),然后輸入命令:
$ git commit -m "修改注釋."
這就創(chuàng)建了一次從暫存區(qū)的提交(加入README.md),-m “修改注釋.”是用戶對這次提交的描述,建議寫成有意義的描述性信息。
7. 查看修改內(nèi)容
$ git diff 文件名+類型

8. 查看文件內(nèi)容
$ cat 文件名

二、遠程倉庫
到目前為止,我們的操作都是在本地的——只存在于.git文件中。為了能夠協(xié)同開發(fā),我們需要把代碼部署到遠程倉庫服務(wù)器上。
1. 鏈接遠程倉庫 – git remote add
為了能夠上傳到遠程倉庫,我們需要先建立起鏈接。在這篇教程中,我們遠程倉庫的地址為:https://github.com/zgldoing/DoingGit.git。但你應(yīng)該自己在Github、或BitBucket上搭建倉庫,自己一步一步嘗試。
把本地倉庫鏈接到Github上,在命令行執(zhí)行以下內(nèi)容:
# This is only an example. Replace the URI with your own repository address.
$ git remote add origin https://github.com/zgldoing/DoingGit.git
一個項目可以同時擁有好幾個遠程倉庫,為了區(qū)分通常會起不同的名字。通常主要的遠程倉庫被稱為origin。
2.上傳到服務(wù)器 – git push
把本地的提交傳送到服務(wù)器的動作叫做push。每次我們要提交修改到服務(wù)器上時,都會使用到git push。
git push命令有兩個參數(shù),遠程倉庫的名字,以及分支的名字:
# $ git push origin master
$ git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 297 bytes | 297.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/zgldoing/DoingGit.git
7e26bc1..3ec5f5d master -> master
取決于你使用的服務(wù)器,push過程中你可能需要驗證身份(輸入用戶名、密碼,請先在網(wǎng)站上進行注冊)。如果沒有出差錯,現(xiàn)在用瀏覽器看你的遠程倉庫上已經(jīng)有README.md了。
3.克隆倉庫 – git clone
其他人可以看到你放在Github上的開源項目,他們可以用git clone命令下載到本地。
$ git clone https://github.com/zgldoing/DoingGit.git
本地也會創(chuàng)建一個新的倉庫,并自動將github上的版本設(shè)為遠程倉庫。
4.從服務(wù)器上獲得修改 – git pull
如果你更新了遠程倉庫上的內(nèi)容,其他人可以通過git pull命令拉取你的變動:
$ git pull origin master
From https://github.com/zgldoing/DoingGit.git
* branch master -> FETCH_HEAD
Already up-to-date.
因為在我們git clone之后還沒有提交過修改,所有沒有任何變動。