Git學習1:初識Git
認識Git
其實學習Git已經有一段時間了,但是一直不知道怎麼把學的東西整理出來並寫成部落格。這個系列的部落格不會詳盡將Git的使用展現出來,畢竟已經有比較經典的Git教程了。本著實用的原則,會先將Git的一些概念做一個介紹,然後對在使用Git過程中常用的命令做一個深入的解釋,所謂知其然知其所以然。
Git是Linux之父Linus的第二個偉大的作品(第一個大家都懂的)。在Git出現之前,SVN佔據了版本控制系統的半壁江山,而Git與SVN的最大的區別可以概括為以下幾點:
- Git是分散式版本控制系統,而SVN是集中式的。分散式與集中式的最大區別在於不需要集中式的版本庫,每個人都可以工作在通過克隆建立的本地版本庫中。換言之,每個人都具有一個完整的版本庫
- Git版本庫的是按照後設資料儲存的,而SVN則是按照檔案儲存。具體而言就是,通過Git克隆的本地版本庫下的.git目錄只會儲存後設資料,而SVN倉庫下的.svn目錄會包含原始檔案的拷貝
- Git的版本號的全球唯一的哦。Git使用了SHA-1(40個十六進位制數字)演算法保證了版本號的全球唯一,Linus指出使用SHA-1演算法的目的是保證資料的完整性。理論上對其進行雜湊碰撞(hash collision,不同的兩塊資料有相同的hash值)的攻擊可以在2^51(2的51次方)左右的次數內實現。也就是兩個版本號衝突的機率是1/2^51
Git除了以上與SVN的巨大不同外,還具有以下的閃亮特性,這也是我學習Git的理由。學好Git,受用終身。
工作備份
程式碼備份也許是多數人使用Git的理由,其實除了程式碼備份外,Git還可以備份其他檔案。在進行工作備份的時候,我們需要的僅僅是執行以下簡單的程式碼:
git add . # 這兩個命令可以將本地的修改提交給本地倉庫
git commit
git push # git push命令把本地倉庫的修改更新到遠端倉庫
異地協同工作
我覺得這是另一個Git的優秀特性,比如在學校的機房將工作成果完成了工作備份,在宿舍就可以通過一個命令git pull
把工作成果同步到本地,如果又進行了其他的修改,那麼只需要git push
就可以重新將新的工作成果備份到遠端的版本庫中。
現場版本控制
在使用Git的時候,完全可能在工作完成一部分的時候發生了意外,如果需要對目前的工作成果進行儲存,使用git tag
命令就可以輕鬆完成。tag的意思就是標籤,在Git中則理解為里程碑。無論工作進行到哪裡了,都可以使用git tag
標記專案的里程碑。也可以回退到指定到的里程碑上。
吃後悔藥很簡單
在Git中提供了很多反悔的操作,所以把Git理解為“時光穿梭機”也不為過。可以使用諸如git rm
、git commit --amend
、git rebase
等操作就可以輕易實現反悔操作。
更好用的差異比較
Git提供了功能豐富的差異比較命令,Git支援的差異比較除了支援基於行的差異比較外,還支援行內逐字的比較。在Git中實現差異比較只需要使用git diff
命令就可以各種型別的差異比較。
相關文章
- 初識GitGit
- GIT初學者詳細指令學習Git
- Git—學習筆記1Git筆記
- Git 學習日誌1Git
- git學習筆記1Git筆記
- git學習筆記 1Git筆記
- Web 前置知識——Git 和 GitHub:① Git、GitHub初認識WebGithub
- 初識 Git 工作流程Git
- git分支初學指南Git
- 廖雪峰Git學習筆記1-Git簡介Git筆記
- git學習之git rebaseGit
- 初識Git 基本的使用操作Git
- Git初識-常用命令Git
- git學習Git
- 【git學習一】git的原理Git
- 【git學習五】git基礎之git分支Git
- git bash and git 初體驗Git
- GIT學習筆記一git initGit筆記
- git的學習Git
- Git學習整理Git
- Git 學習一Git
- git學習地址Git
- git學習心得Git
- git學習之git reflog和git cherry-pickGit
- 初用gitGit
- git(一):瞭解、學習、安裝gitGit
- Git學習3 --- Git命令列基本操作Git命令列
- 【git學習二】git基礎之git管理本地專案Git
- Git簡單學習Git
- Git的初步學習Git
- Git&SourceTree學習Git
- git 學習筆錄Git
- git worktree學習Git
- git學習筆記Git筆記
- Git 的特點—— Git 學習筆記 02Git筆記
- 取得 Git 倉庫 —— Git 學習筆記 04Git筆記
- git rebase(變基)—— Git 學習筆記 19Git筆記
- git常用命令-Git學習筆記Git筆記