本文首發於公衆號「AntDream」,歡迎微信搜索「AntDream」或掃描文章底部二維碼關注,和我一塊兒天天進步一點點git
Git是咱們平常開發的必備工具,是團隊協做的利器。Git使用普遍,而之因此如此流行,主要和它的一些突出的優勢分不開。服務器
咱們在使用Git時,不管是從遠程倉庫clone代碼,仍是把本地的代碼推到遠程的新倉庫,都是完成的克隆一份代碼。至關因而複製了一份代碼到別的地方,也就是備份。微信
並且Git是去中心化的,這個去中心化簡單理解就是每一份代碼都是能夠獨立編輯使用的,不會由於某一個機器上的代碼丟失了,而致使全部人都丟失代碼或沒法工做。分佈式
在 Git 中的絕大多數操做都只須要訪問本地文件和資源。工具
舉個極端的例子,假設公司的開發團隊的代碼都託管在GitLab上,若是有一天,GitLab忽然掛了不能用了,會出現什麼狀況?實際上對咱們開發影響不大,由於咱們每一個人的電腦上都有一份代碼,代碼並無丟失,你們仍是能夠繼續開發。post
有影響的是團隊協做,你們無法同步代碼了,也就是把你們開發的代碼合併在一塊兒看效果。而這個也很容易處理,由於咱們能夠本身搭一個Git服務器,這個也是比較簡單就能實現的。學習
Git存儲了跟蹤文件的每次提交的快照,咱們每次提交一次(commit),Git就保存了一次。之後咱們能夠隨時回到某一次提交(Commit)。使用git log
命令能夠查看當前分支的全部提交記錄。spa
這裏也引出了一個Git使用習慣,就是即時提交(Commit)。只有即時提交了,後續若是發現代碼有bug,才能回滾到最理想的位置。固然也不是隨便寫幾行就提交一下,那也是蠻累的。主要是一些必要的節點,好比完成一個小模塊小功能等。插件
Git使用起來也比較簡單,既能夠用命令行也能夠用第三方的工具,好比Android Studio自帶的Git插件,Mac下的Sourcetree等。可是儘管像Sourcetree已經作得很人性化很簡化了,在實際使用過程當中咱們仍是不免碰到一些奇怪的問題,有時候是軟件使用不熟悉,特別是使用一些相對高級一點的功能,好比回滾,合併衝突等。命令行
我以前也是很依賴Sourcetree,一來是由於若是用命令行,須要記住不少的命令;二來是由於Sourcetree這樣的軟件相對來講比較直觀,內心更踏實一些。
直到有一次,用Android Studio的Git插件推送的時候,推錯分支了!而後爲了回滾,在Sourcetree上忙了好一陣仍是沒有抹掉「犯罪證據」!後來仍是同事幫忙弄的,非常尷尬!
此次教訓讓我慢慢開始切換到用Git命令行爲主,Sourcetree爲輔的路子上來。如今基本沒有Git的問題困擾了。
正是基於以上的幾點,我準備把本身最近學習到的一些Git知識總結記錄下來,會分爲幾篇文章,但願本身之後碰到Git問題能快速的找到緣由並解決,也但願對你們有所幫助。
歡迎關注個人公衆號查看更多精彩文章!
複製代碼