Git是一個強大的分佈式的源代碼管理工具。Git是用c語言開發的分佈版本控制系統。版本控制系統能夠保留一個文件集合的歷史記錄,並能回滾文件集合到另外一個狀態(歷史記錄狀態)。另外一個狀態能夠是不一樣的文件,也能夠是不一樣的文件內容。Git 2.8 發佈了。Git 是一個開源的分佈式版本控制系統,用以有效、高速的處理從很小到很是大的項目版本管理。 Git 2.8. 0 修復了安全相關的漏洞 , 主要針對 2.7.4中出現的漏洞 CVE - 2016 - 2324。雖然這個漏洞暫時沒有被利用 , 但可能形成潛在的安全隱患。建議你們升級到新的版本。jquery
舉個例子,你能夠將文件集合轉換到兩天以前的狀態,或者你能夠在生產代碼和實驗性質的代碼之間進行切換。文件集合每每被稱做是「源代碼」。在一個分佈版本控制系統中,每一個人都有一份完整的源代碼(包括源代碼全部的歷史記錄信息),並且能夠對這個本地的數據進行操做。分佈版本控制系統不須要一個集中式的代碼倉庫。git
Git是什麼?github
Git和 CVS、SVN不一樣,是一個分佈式的源代碼管理工具。Linux內核的代碼就是用Git管理的。它很強,也很快。安全
Git支持分支功能(branch)。若是你想開發一個新的產品功能,你能夠創建一個分支,對這個分支的進行修改,而不至於會影響到主支上的代碼。服務器
Git提供了命令行工具;這個教程會使用命令行。你也能夠找到圖形工具,譬如與EcliPSe配套的EGit工具分佈式
它給咱們帶來的直接好處有:工具
傻瓜都會的初始化,git init, git commit -a, 就完了。對於隨便寫兩行代碼就要放到代碼管理工具裏的人來講,再合適不過。也能夠拿git作備份系統,或者同步兩臺機器的文檔,都很方便。url
絕大部分操做在本地完成,不用和集中的代碼管理服務器交互,終於能夠隨時隨地大膽地check in代碼了。 只有最終完成的版本才須要向一箇中心的集中的代碼管理服務器提交。命令行
每次提交都會對全部代碼建立一個惟一的commit id。不像CVS那樣都是對單個文件分別進行版本的更改。因此你能夠一次性將某次提交前的全部代碼check出來,而不用考慮到底提交過那些文件。(其實SVN也能夠作到這點)版本控制
branch管理容易多了,不管是創建新的branch,仍是在branch之間切換都一條命令完成,不須要創建多餘的目錄。
branch之間merge時,不只代碼會merge在一塊兒,check in歷史也會保留,這點很是重要。
… 太多了
Git與CVS的區別:
分支更快、更容易。 支持離線工做;本地提交能夠稍後提交到服務器上。 Git 提交都是原子的,且是整個項目範圍的,而不像 CVS 中同樣是對每一個文件的。 Git 中的每一個工做樹都包含一個具備完整項目歷史的倉庫。 沒有哪個 Git 倉庫會天生比其餘倉庫更重要
遠程倉庫相關命令:
檢出倉庫:$ git clone git://github.com/jquery/jquery.git
查看遠程倉庫:$ git remote –v
添加遠程倉庫:$ git remote add [name] [url]
刪除遠程倉庫:$ git remote rm [name]
拉取遠程倉庫:$ git pull [remoteName] [localBranchName]
推送遠程倉庫:$ git push [remoteName] [localBranchName]
分支(branch)操做相關命令查看本地分支:$ git branch
查看遠程分支:$ git branch –r
建立本地分支:$ git branch [name] ----注意新分支建立後不會自動切換爲當前分支
切換分支:$ git checkout [name]
建立新分支並當即切換到新分支:$ git checkout -b [name]
刪除分支:$ git branch -d [name] ---- -d選項只能刪除已經參與了合併的分支,對於未有合併的分支是沒法刪除的。若是想強制刪除一個分支,可使用-D選項
合併分支:$ git merge [name] ----將名稱爲[name]的分支與當前分支合併建立遠程分支
(本地分支push到遠程):$ git push origin [name]
刪除遠程分支:$ git push origin :heads/[name]
版本(tag)操做相關命令查看版本:$ git tag
建立版本:$ git tag [name]
刪除版本:$ git tag -d [name]
查看遠程版本:$ git tag –r
建立遠程版本(本地版本push到遠程):$ git push origin [name]
刪除遠程版本:$ git push origin :refs/tags/[name]
子模塊(submodule)相關操做命令添加子模塊:$ git submodule add [url] [path]
初始化子模塊:$ git submodule init ----只在首次檢出倉庫時運行一次就行
更新子模塊:$ git submodule update ----每次更新或切換分支後都須要運行一下
刪除子模塊:$ git rm --cached [path]
忽略一些文件、文件夾不提交在倉庫根目錄下建立名稱爲「.gitignore」的文件,寫入不須要的文件夾名或文件,每一個元素佔一行便可,如targetbin*.db 分佈式源代碼管理工具(Git) 2.8.0 官方多 下載網址http://www.xiazai.com/wins27284#js_active_url