每天資訊Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

菜單

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

前言

相信每一個開發人員,從開始工作實習就和一個開源專案不離不棄,你的idea,你的文件,你的程式碼指南,幾乎都會和它扯上相應的聯絡,相信有朋友已經猜到了,對,他就是Git,老牌程式設計師可能會用的是SVN,但是我想後面也已經轉型而來,改為Git了吧

之前寫過一篇文章,影響世界的開源專案,除了Linux之外,還有一個就是Git,有興趣的大家可以看一下:讓世界為之讚歎的開源專案,除了Linux,你知道Git嗎?

那Git為什麼這麼牛逼,我們先簡單地看一下Git的實現方式吧

“版本控制系統”Version Control System,VCS)是程式程式碼管理軟體的通稱,是用來儲存程式檔案的修改記錄以及歷史版本,以便日後檢視或是使用。

VCS已經有數十年的發展歷史,最早期的系統是採用集中管理和控制的方式。如果要修改某一個程式檔案,必須先將它鎖定,然後取出修改。在完成修改和回傳之前,其他人都不能更改這個程式檔案。這種方式可以有效避免“衝突”(conflict)的發生(也就是防止不同人同時修改同一段程式程式碼所造成混淆的情況),但是付出的代價是效率降低。因為如果想要修改的檔案正好有別人正在修改,就必須等程式檔案回傳之後才能動手。如果要修改的人很多,因為互相等待所造成的時間浪費將非常可觀。為了解決這個問題,新的VCS 改成採用分散式的方法。每一個人隨時都可以獲取任何一個程式檔案來進行修改,等到送回VCS 的時候,再根據需要進行“合併”(merge), Git就是採用這種分散式技術的系統。

那接下來就是進入整題,也就是Git在我們日常生活中的使用以及面試中常問的問題

開始前,先來看我整理的相應的思維導圖吧

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

第一部分Git的基本概念和操作

Git的開發者其實就是Linux的作者,也就是鼎鼎大名的 LinusTorvalds。—開始的時候,Torvalds是使用 BitKeeper 軟體來管理Linux的程式程式碼,該軟體原來是免費使用的,但是後來卻要收費。於是Torvalds想要更換VCS,卻苦於尋找不到其他的替代方案可以符合開發Linux的需求。因為參與開發 Linux 的人數高達上千人,而且分佈在世界各地。最後Torvalds決定自己打造一個VCS。經過短短几個星期,第—版的 Git就正式誕生。Linux專案從此用Git管理,當時有將近七百萬行的程式程式碼!

由於Git管理Linux專案非常成功,許多公司於是紛紛效仿,開始使用 Git來管理和控制軟體研發專案。這些成功的經驗,讓 Git的影響力越來越高,使用率也快速提升。

所以開始第一篇,很簡單,就是Git的操作指令,不錯,如果你會Linux的話,很多東西對你來說比較簡單的,好多命令可以通用

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

第二部分建立分支、合併和解決衝突

當可以正常使用軟體之後,接下來就是對於程式提交的管理工作,畢竟專案開發過程中摻雜著多人之間的協作問題,就像Linux有近兩萬人提交升級修改,那Git是如何去解決這個問題呢?

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

第三部分Git程式的圖形操作介面

就像Linux的每一個版本都會有DVD和mini兩個版本一樣,在習慣了使用mini的命令版本之後,DVD版本的Linux更容易上手

同樣得,到當前為止,我們一直都是使用 Git Bash程式來學習Git的用法。Git Bash程式是以輸入指令的方式操作 Git文件庫。與圖形操作介面的程式相比,這種命令列模式的程式好像比較麻煩。其實不然,Git Bash程式才是能夠完整發揮Git最大功能的操作工具。初學者應該從 GitBash程式開始學習,才能打下紮實的 Git指令基礎,並且完整了解 Git文件車的工作原理。等到熟練掌握這些基礎知識之後,再來學習圖形操作模式,自然就能觸類旁通、輕而易舉。經過前面單元的學習和演練,相信讀者已經具備完整的基礎。這個單元我們就來介紹 Git GUI這個圖形介面操作程式的用法。

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

第四部分遠端Git文件庫和團隊開關模式

截至當前為止,我們操作的 Git文件庫都是儲存在程式專案的資料夾內(也就是“。git”的資料夾內)。隨著程式專案的進展,我們會把不同階段的檔案內容加入Git文件庫。這個Git文件庫是由我們直接操控,稱它為“本地 Git文件庫(local repository)”。除了“本地 Git文件庫”以外,如果需要和其他人共同開發這個程式專案,還需要一個所謂的“遠端Git文件庫(remote repository)”。這個單元我們就來介紹“遠端 Git文件庫”的功能和用法。

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

重點把這一塊的內容拿出來,因為它這個Git遠端文件庫跟我把GitHub當成百度網盤使用有異曲同工之妙,但是我的方案還是有一點不足,在看完這份文件之後才想到改進方案

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

第五部分架設Git Server

這個單元先介紹兩種訪問遠端 Git文件庫最簡單的做法。這兩種方法都不需要安裝任何其他軟體。

第一種是使用Windows作業系統本身的網路“共享資料夾”功能;

第二種是使用Git內建的 dacmon功能。

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

附錄Git常用指令—覽表

Git總共提供了超過一百個以上的指令讓我們執行各種操作可以使用“git help -a”指令顯示完整的指令列表),每一個指令又有許多選項可以搭配,但是我們不可能,也不需要完全記住這些指令。就實用性而言,只要熟練部分指令和選項的用法,就可以滿足—般應用的需求。以下我們將常用的 Git指令,按照字母順序列表說明,以方便讀者查閱。

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

Linux之父帶1.2億程式設計師如何深度剖析Git底層原理文件

請點選輸