本文是學習完廖雪峰老師Git教程後的精簡實用版總結,再次對廖雪峰老師表示感謝。

1 安裝git

Git是目前最簡單的版本管理工具,並且可以在Linux、Unix、Mac和Windows這幾大平台上正常運行了。要使用Git,第一步當然是安裝Git了。

在Linux(Ubuntu)上安裝Git

$ sudo apt-get install git

一條指令直接完成Git的安裝,非常簡單。

在Mac OS上安裝Git

直接從AppStore安裝Xcode,Xcode集成了Git,不過默認沒有安裝,你需要運行Xcode,選擇菜單「Xcode」->「Preferences」,在彈出窗口中找到「Downloads」,選擇「Command Line Tools」,點「Install」就可以完成安裝了。

在Windows上安裝Git

從Git官網直接下載安裝程序,(網速慢的請移步國內鏡像),然後按默認選項安裝即可。安裝完成後,在開始菜單里找到「Git」->「Git Bash」,蹦出一個類似命令行窗口的東西,就說明Git安裝成功!

安裝完成後,還需要最後一步設置,在命令行輸入

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

注意git config命令的--global參數,用了這個參數,表示你這台機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的用戶名和Email地址。

2 創建版本庫

版本庫可以理解為一個目錄,所有文件都可以被Git管理起來

如果使用Windows系統,推薦在git bash下進行操作。

第一步,創建一個空目錄:

$ mkdir learngit
$ cd learngit
$ pwd
/e/learngit

pwd命令用於顯示當前目錄。在我的Windows上,這個倉庫位於/e/learngit

如果使用Windows系統,為了避免遇到各種問題,請確保目錄名(包括父目錄)不包含中文。

第二步,通過git init命令把這個目錄變成Git可以管理的倉庫:

$ git init
Initialized empty Git repository in E:/learngit/.git/

第三步,添加文件到版本庫

learngit目錄下創建readme.txt文件,內容如下:

Git is a version control system.
Git is free software.

如果使用Windows系統,不要使用記事本編輯,推薦使用Notepad++。

然後,用命令git add告訴Git,把文件添加到倉庫:

$ git add readme.txt

執行上面的命令,沒有任何顯示,說明添加成功。

最後,用命令git commit告訴Git,把文件提交到倉庫:

$ git commit -m "wrote a readme file"
[master (root-commit) 50b9e02] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt

git commit命令中-m後面輸入的是本次提交的說明,方便你在歷史記錄中找到改動記錄。

git commit命令執行成功後會告訴你,1 file changed:1個文件被改動(我們新添加的readme.txt文件);2 insertions:插入了兩行內容(readme.txt有兩行內容)

為什麼Git添加文件需要addcommit一共兩步呢?因為commit可以一次提交很多文件,所以你可以多次add不同的文件

使用git status命令,可以隨時掌握工作區的狀態

如果git status告訴你有文件被修改過,用git diff可以查看修改內容。

3 時光穿梭機

版本回退

使用git log可以查看提交歷史

在Git中,用HEAD表示當前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100

使用git reset命令進行HEAD頭指針跳轉:

$ git reset --hard HEAD^
HEAD is now at 3aeb22f append GPL

使用git reset命令進行版本號跳轉:

$ git reset --hard 3aeb22
HEAD is now at 3aeb22f append GPL

使用git reflog查看命令歷史,以便確定要回到哪個版本

撤銷修改

場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file

$ git checkout -- readme.txt

場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD <file>,就回到了場景1,第二步按場景1操作。

$ git reset HEAD readme.txt
Unstaged changes after reset:
M readme.txt

場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠程庫。。

命令git rm用於刪除一個文件。如果一個文件已經被提交到版本庫,那麼你永遠不用擔心誤刪,但是要小心,你只能恢復文件到最新版本,你會丟失最近一次提交後你修改的內容。

$ git rm test.txt
rm test.txt

$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
1 file changed, 1 deletion(-)
delete mode 100644 test.txt

4 遠程倉庫

自行註冊GitHub賬號。由於本地Git倉庫和GitHub倉庫之間的傳輸是通過SSH加密的,所以需要設置:

第1步:創建SSH Key。在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,如果已經有了,可直接跳到下一步。如果沒有,打開Shell(Windows下打開Git Bash),創建SSH Key:

$ ssh-keygen -t rsa -C "[email protected]"

如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,裡面有id_rsaid_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

第2步:登陸GitHub,打開「Account settings」,「SSH Keys」頁面,然後,點「Add SSH Key」,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內容。

GitHub允許你添加多個Key。假定你有若干電腦,你一會兒在公司提交,一會兒在家裡提交,只要把每台電腦的Key都添加到GitHub,就可以在每台電腦上往GitHub推送了。

添加遠程庫

在本地創建了一個Git倉庫後,又想在GitHub創建一個Git倉庫,並且讓這兩個倉庫進行遠程同步,這樣,GitHub上的倉庫既可以作為備份,又可以讓其他人通過該倉庫來協作。

首先,登陸GitHub,然後,在右上角找到「Create a new repo」按鈕,創建一個新的倉庫; 在Repository name填入learngit,其他保持默認設置,點擊「Create repository」按鈕,就成功地創建了一個新的Git倉庫;

要關聯一個遠程庫,使用命令git remote進行關聯

git remote add origin git@server-name:path/repo-name.git;

關聯後,使用命令git push推送master分支的所有內容;

第一次推送

git push -u origin master

以後修改推送

git push origin master

克隆遠程庫

要克隆一個倉庫,首先必須知道倉庫的地址,然後使用git clone命令克隆。

Git支持多種協議,包括https,但通過ssh支持的原生git協議速度最快。

$ git clone [email protected]:chaowentao/gitskillls.git
Cloning into gitskillls...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

未完待續……


推薦閱讀:
相关文章