Git 是什么,很多新手程序員可能接觸過SVN,CVS等版本控制工具,今天我們先來了解下Git這個很流行,很好用的版本控制工具?
Git 倉庫主要是由是三部分組成:本地代碼,緩存區(qū),提交歷史,這幾乎是所有操作的本質(zhì),但是為了文章更加簡單易懂,就不圍繞這塊展開了,有興趣的可以去了解下。
Git 是一個分布式的代碼管理容器,本地和遠端都保有一份相同的代碼。
開門見山,我們直接來說說 Git 有哪些常見的操作。
在我們碼農(nóng)日常開發(fā)工程中,Git 有哪些常規(guī)基本操作命令?
? 克隆遠端代碼
? 查看本地的代碼狀態(tài)
git status
? 同步遠端分支變化
? 同步遠端代碼變化。
關(guān)于 git merge 和 git rebase 各自的優(yōu)劣,后文會詳細介紹。
這部分主要介紹了關(guān)于代碼克隆,同步遠端代碼變化的相關(guān)操作。接下來,我們看看關(guān)于本地代碼的一些操作。
操作 commit
首先我們要明確一個概念:就是每個 commit 都是一份完整的代碼狀態(tài),用一個 commitID 來唯一標志。
git log –stat 可以讓你的 commit 記錄更清晰
從某個角度上來說,Git維護的就是一個commitID樹,分別保存著不同狀態(tài)下的代碼。
所以你對代碼的任何修改,最終都會反映到 commit 上面去。
? 新增 commit
? 撤銷 commit
? 合并 commit
合并 commit,本質(zhì)上合并兩份不同狀態(tài)下的代碼。
那么 git rebase 和 git merge 到底有什么區(qū)別呢?
merge是兩個分支處理沖突后,新增一個 commit 追加到master上。
rebase是將someFeature分支上的commit記錄追加到主分支上,值得注意的是,這個時候他的commit其實已經(jīng)發(fā)生變化。
相對來說,git merge 處理沖突更直接,而git rebase 能夠保證清晰的 commit 記錄。
合并 commit 的時候,通常會發(fā)生沖突。
可以全局搜索特殊字符比如 ,找到需要處理的代碼位置,然后認真分析應(yīng)該保留哪一部分代碼。
我們今天就先學(xué)習(xí)到這來,Git的基本操作大家應(yīng)該都了解了,后面我們再來學(xué)習(xí)Git的重要功能“分支”管理。