版本管理·玩轉git(快速入門git)

若是你用過Word文檔寫過文章,那麼你必定會有這樣的經歷。
我以爲某一段或者某一句寫得不夠好,可是,刪掉以後我可能會後悔把它刪掉了,進而又想把刪掉的段落找回來,這時,你想到了一個好辦法,將每次的修改都做爲一個文章版本保存起來,這樣雖然可以解決你的問題。可是,隨着你的修改次數愈來愈多,你會發現,電腦桌面上出現了N多個Word副本,這時,你已沒法分清每一個副本對應的是何時做的修改。
因而你想,若是有一個軟件,不但能自動幫我記錄每次文件的修改,還可讓同事協做編輯,這樣就不用本身管理一堆相似的文件了,也不須要把文件傳來傳去。若是想查看某次改動,只須要在軟件裏瞄一眼就能夠,豈不是很方便?
既然有這樣的想法,那麼你就應該學習一下git。
那什麼是git?
git是目前世界上最早進的分佈式版本控制系統。
既然是最早進的,咱們固然是要去學好它,掌握好它了。
那麼,從該篇博客開始,我將記錄git教程系列,做爲學習資料提供給你們。
git

咱們先說一個故事吧。
不少人都知道,Linus在1991年建立了開源的Linux,今後,Linux系統不斷髮展,已經成爲最大的服務器系統軟件了。
Linus雖然建立了Linux,但Linux的壯大是靠全世界熱心的志願者參與的,這麼多人在世界各地爲Linux編寫代碼,那Linux的代碼是如何管理的呢?github

事實是,在2002年之前,世界各地的志願者把源代碼文件經過diff的方式發給Linus,而後由Linus本人經過手工方式合併代碼!vim

你也許會想,爲何Linus不把Linux代碼放到版本控制系統裏呢?不是有CVS、SVN這些免費的版本控制系統嗎?由於Linus堅決地反對CVS和SVN,這些集中式的版本控制系統不但速度慢,並且必須聯網才能使用。有一些商用的版本控制系統,雖然比CVS、SVN好用,但那是付費的,和Linux的開源精神不符。windows

不過,到了2002年,Linux系統已經發展了十年了,代碼庫之大讓Linus很難繼續經過手工方式管理了,社區的弟兄們也對這種方式表達了強烈不滿,因而Linus選擇了一個商業的版本控制系統BitKeeper,BitKeeper的東家BitMover公司出於人道主義精神,受權Linux社區無償使用這個版本控制系統。服務器

安定團結的大好局面在2005年就被打破了,緣由是Linux社區牛人彙集,難免沾染了一些梁山好漢的江湖習氣。開發Samba的Andrew試圖破解BitKeeper的協議(這麼幹的其實也不僅他一個),被BitMover公司發現了(監控工做作得不錯!),因而BitMover公司怒了,要收回Linux社區的無償使用權。編輯器

Linus能夠向BitMover公司道個歉,保證之後嚴格管教弟兄們,嗯,這是不可能的。實際狀況是這樣的:分佈式

Linus花了兩週時間本身用C寫了一個分佈式版本控制系統,這就是Git!一個月以內,Linux系統的源碼已經由Git管理了!學習

Git迅速成爲最流行的分佈式版本控制系統,尤爲是2008年,GitHub網站上線了,它爲開源項目免費提供Git存儲,無數開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。網站

歷史就是這麼偶然,若是不是當年BitMover公司威脅Linux社區,可能如今咱們就沒有免費而超級好用的Git了。操作系統

這就是git的誕生史了。

那首先咱們來說一下安裝。
git在Linux、Mac、Win下均可以安裝。
由於你們廣泛都是Windows操做系統,我就以Windows環境爲例。
在Windows環境下,咱們只需訪問https://git-for-windows.github.io網址,便可下載git,而後一路next,安裝就完成了。
安裝完成後,咱們點擊開始菜單,找到git,而後打開。
在這裏插入圖片描述
這樣就說明git安裝成功了。
人在江湖,豈能沒有名號,在你使用git以前,要先報家門,不然代碼不能提交。

$ git config --global user.name #你是誰
$ git config --global user.email #怎麼聯繫你

在這裏插入圖片描述
由於我已經提交過個人用戶名和郵箱了,因此,我這裏打印了個人信息。從這裏咱們知道,這個設置用戶名和郵箱的指令同時也是查看信息的指令吧。
那麼接下來經過一次版本提交咱們來感覺一下,git操做其實沒有什麼可說的,重要的是要記住git指令及其每條指令的含義。
咱們把路徑切換到桌面

cd Desktop

而後在桌面新建一個文件夾,該文件夾就是咱們的工做目錄

mkdir rrd

而後切換到工做目錄

cd rrd

咱們在工做目錄中初始化一個代碼倉庫

git init

有了代碼倉庫以後,咱們就能夠在工做目錄進行工做了。
在目錄中建立一個index.txt文件,並編寫hello git內容。

cat >> index.txt

輸入cat指令建立文件回車後,會等待你輸入文件內容,輸完ctrl+d保存退出。
咱們輸入

hello git

而後,咱們查看一下工做狀態

git status

在這裏插入圖片描述
紅色框線內的意思是說提交時除了未跟蹤的文件以外沒有添加任何內容(使用「git add」進行跟蹤)。
說明咱們的index.txt文件並無被git跟蹤,咱們使用git add對文件進行跟蹤。

git add index.txt

該條指令能夠對index.txt進行跟蹤,可是,文件若是很是多,這樣寫顯然就很繁瑣了,因此,咱們可使用

git add .

將當前目錄的全部文件進行跟蹤。
而後,咱們將該文件提交到代碼倉庫。

git commit -m "提交"

-m是註釋的意思,引號內寫明你對這次提交的註釋信息。
到這裏,咱們就完成了一次版本管理。
注意,在git中有一個暫存區的概念,能夠先不用知道暫存區是什麼,你只須要知道,咱們add文件以後,文件是會先放在暫存區,此時文件並無被提交,因此你能夠隨時撤回你放入暫存區的文件,當你commit以後,文件纔會從暫存區被提交到代碼倉庫。

咱們如今對文件進行修改

vi index.txt

而後輸入i、o或者a均可以進入vim的編輯模式,進入編輯模式後,對文件內容進行一些簡單的修改,而後按esc退出編輯模式,進入命令模式,此時,輸入 :q! 便可退出編輯器,可是修改不保存,輸入 :wq 便可保存內容並退出,而後輸入

git status

在這裏插入圖片描述
git會提示你的工做區內容被修改了,這時咱們輸入

git add .
git commit -m "再次提交"

咱們的修改就會被同步到咱們的代碼倉庫中。

接下來演示一下刪除。
咱們再次建立一個文件並將其提交到代碼倉庫,這個相信已經難不倒大家了,我直接貼出全部步驟。

cat >> demo.txt
git add .
git commit  -m"第三次提交"

此時咱們輸入git status查看一下狀態。
在這裏插入圖片描述
工做區是空的,說明咱們的工做區和代碼倉庫已經同步了。
而後,咱們把剛纔建立的文件進行刪除。

git rm demo.txt

再次輸入git status查看狀態。
在這裏插入圖片描述
此時git就發現咱們刪除了文件,注意,如今若是想將工做區與代碼倉庫進行同步,不須要add了,而是直接輸入

git commit -m "第四次提交"

這樣,代碼倉庫的demo.txt文件也就被刪除了。 若是你本身手動刪除文件,你是須要進行add操做的,可是,若是你使用git rm命令進行文件刪除,git會幫助你直接把操做放入暫存區,因此,你能夠直接提交你的刪除操做。

相關文章
相關標籤/搜索