從零開始使用Github
本文是學習完廖雪峰老師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添加文件需要add
,commit
一共兩步呢?因為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_rsa
和id_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.
未完待續……
推薦閱讀: