一、流程與概念
首先在使用git之前我們需要了解它的幾個概念和基礎使用流程,在git操作中有四個重要的地方,你所有的操作都是在和他們打交道。
- workspace : 工作目錄是對項目的某個版本獨立提取出來的內容。 這些從 Git 倉庫的壓縮數據庫中提取出來的文件,放在磁盤上供你使用或修改。
- index : 暫存區 , 一個本地的緩衝區。暫存區域是一個文件,保存了下次將提交的文件列表信息,一般在 Git 倉庫目錄中。 有時候也被稱作`‘索引’',不過一般說法還是叫暫存區域。
- local repository : 本地倉庫,裏面有遠程分支和本地分支, 處於本地,你不可以直接對其經行修改
- remote repository : 遠程倉庫是 Git 用來保存項目的元數據和對象數據庫的地方。 這是 Git 中最重要的部分,從其它計算機克隆倉庫時,拷貝的就是這裏的數據。
流程圖:
二、安裝git
在不同的操作系統上安裝方式不同
Debian/Ubuntu
apt-get install git
Fedora
yum install git
window需要下載,http://windows.github.com
mac可以通過homebrew來安裝
三、配置git
Git 自帶一個 git config
的工具來幫助設置控制 Git 外觀和行爲的配置變量。你的配置也是要通過該工具完成,當然你也可以通過修改配置文件的方式。
1.配置用戶名和郵箱
此處設置的用戶名和郵箱可以隨意設置,每必要和你的github一模一樣,這個只是在提交的時候附加上去,標明這次提交時誰幹的,出事了就找這個人。
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
如果使用了 --global
選項,那麼該命令只需要運行一次,因爲之後無論你在該系統上做任何事情, Git 都會使用那些信息。 當你想針對特定項目使用不同的用戶名稱與郵件地址時,可以在那個項目目錄下運行沒有 --global
選項的命令來配置。
2.配置文件編輯器
如果你對文本編輯器有特殊的習慣,可以配置此項,當 Git 需要你輸入信息時會調用它。 如果未配置,Git 會使用操作系統默認的文本編輯器。謹慎配置,如果你對這些編譯器不熟悉最好還是保持默認
$ git config --global core.editor Vim
3.配置github
你可以配置github賬號和token
git config --global github.user s15603333319
git config --global github.token 241236a041eab12345dcba1df1b6d1c546f24f95
4.查看配置
如果你想檢查你的配置,可以使用此命令
git config --list
如果你想查看某一項配置,你需要按照git config <key>的格式,比如查看用戶名
git config user.name
5.獲取幫助
如果你有什麼不懂的可以使用hlep來獲取命令的使用方法
$ git help <verb>
$ git <verb> --help
例如想知道config命令的使用方法
$ git help config
四、基礎操作
如果你想克隆一份git倉庫的代碼,你就可以使用git clone [url]
git clone [email protected]:s15603333319/AndroidOpenGL.git
如果你打算使用 Git 來對現有的項目進行管理,你需要使用git init來初始話該項目
git init
使用git add filename來添加文件到暫存區,如果你想添加本目錄下所有文件,可以使用git add .
git add .
所有的變更,最終都需要提交,才能在本地持久化報存
git commit -m "提交所附加的信息"
要上傳到遠程服務器上,你還要指定你的遠程倉庫地址
git remote add origin https://github.com/s15603333319/AndroidOpenGL.git
最後一步,你就可以把你commit到本地倉庫的代碼push到遠程了,指定分支
git push origin master
五、其它操作
檢查當前文件狀態
git status
忽略文件
我們總會有一些文件不需要納入git的管理,這種情況下,我們可以創建一個名爲 .gitignore
的文件,在其中列出要忽略的文件樣式。
$ cat .gitignore
*.[oa]
*~
熟悉正則表達式的看這個很容易明白,不懂的可以去學一下,正則表達式還是很重要的一個東西的。
第一行告訴 Git 忽略所有以 .o
或 .a
結尾的文件。
第二行告訴 Git 忽略所有以波浪符(~)結尾的文件
文件 .gitignore
的格式規範如下:
- 所有空行或者以
#
開頭的行都會被 Git 忽略。 - 可以使用標準的 glob 模式匹配。
- 匹配模式可以以(
/
)開頭防止遞歸。 - 匹配模式可以以(
/
)結尾指定目錄。 - 要忽略指定模式以外的文件或目錄,可以在模式前加上驚歎號(
!
)取反。
GitHub 有一個十分詳細的針對數十種項目及語言的 .gitignore
文件列表,你可以在 https://github.com/github/gitignore 找到它.
查看提交歷史
git log
他有許多參數可以配置, 比較常用的一個常用的選項是 -p
,用來顯示每次提交的內容差異。 你也可以加上 -2
來僅顯示最近兩次提交。
撤銷提交
有時候我們提交信息寫錯了,或者漏改了一個地方,我們就需要撤銷操作。該命令可以覆蓋第一次提交的結果
git commit --amend
創建分支
團隊開發必然是要創建分支的,不可能大家都在主線上提交和改動
git branch 分支名稱
切換分支
git checkout 分支名稱
如果你在此命令上加上參數-b 就表示創建並切換此分支
查看分支
git branch
該命令會列出所有分支,前面帶*號的那個是當前分支
合併分支
git merge 分支名稱
該命令用戶合併指定分支到當前分支上
刪除分支
git branch -d 分支名字
合併後的分支就可以刪掉了,刪除分支要謹慎
這些都是使用率比較高的命令,也很基礎,如果你對git有更多的要求,可以查看官方文檔學習