版本管理 玩轉git 快速入門git

2021-09-20 13:05:04 字數 4024 閱讀 6954

如果你用過word文件寫過文章,那麼你一定會有這樣的經歷。

我覺得某一段或者某一句寫得不夠好,但是,刪掉之後我可能會後悔把它刪掉了,進而又想把刪掉的段落找回來,這時,你想到了乙個好辦法,將每次的修改都作為乙個文章版本儲存起來,這樣雖然能夠解決你的問題。但是,隨著你的修改次數越來越多,你會發現,電腦桌面上出現了n多個word副本,這時,你已無法分清每個副本對應的是什麼時候作的修改。

於是你想,如果有乙個軟體,不但能自動幫我記錄每次檔案的修改,還可以讓同事協作編輯,這樣就不用自己管理一堆類似的檔案了,也不需要把檔案傳來傳去。如果想檢視某次改動,只需要在軟體裡瞄一眼就可以,豈不是很方便?

既然有這樣的想法,那麼你就應該學習一下git。

那什麼是git?

git是目前世界上最先進的分布式版本控制系統。

既然是最先進的,我們當然是要去學好它,掌握好它了。

那麼,從該篇部落格開始,我將記錄git教程系列,作為學習資料提供給大家。

我們先說乙個故事吧。

很多人都知道,linus在2023年建立了開源的linux,從此,linux系統不斷發展,已經成為最大的伺服器系統軟體了。

linus雖然建立了linux,但linux的壯大是靠全世界熱心的志願者參與的,這麼多人在世界各地為linux編寫**,那linux的**是如何管理的呢?

事實是,在2023年以前,世界各地的志願者把源**檔案通過diff的方式發給linus,然後由linus本人通過手工方式合併**!

你也許會想,為什麼linus不把linux**放到版本控制系統裡呢?不是有cvs、svn這些免費的版本控制系統嗎?因為linus堅定地反對cvs和svn,這些集中式的版本控制系統不但速度慢,而且必須聯網才能使用。有一些商用的版本控制系統,雖然比cvs、svn好用,但那是付費的,和linux的開源精神不符。

不過,到了2023年,linux系統已經發展了十年了,**庫之大讓linus很難繼續通過手工方式管理了,社群的弟兄們也對這種方式表達了強烈不滿,於是linus選擇了乙個商業的版本控制系統bitkeeper,bitkeeper的東家bitmover公司出於人道主義精神,授權linux社群免費使用這個版本控制系統。

安定團結的大好局面在2023年就被打破了,原因是linux社群牛人聚集,不免沾染了一些梁山好漢的江湖習氣。開發samba的andrew試圖破解bitkeeper的協議(這麼幹的其實也不只他乙個),被bitmover公司發現了(監控工作做得不錯!),於是bitmover公司怒了,要收回linux社群的免費使用權。

linus可以向bitmover公司道個歉,保證以後嚴格管教弟兄們,嗯,這是不可能的。實際情況是這樣的:

linus花了兩周時間自己用c寫了乙個分布式版本控制系統,這就是git!乙個月之內,linux系統的原始碼已經由git管理了!

git迅速成為最流行的分布式版本控制系統,尤其是2023年,github**上線了,它為開源專案免費提供git儲存,無數開源專案開始遷移至github,包括jquery,php,ruby等等。

歷史就是這麼偶然,如果不是當年bitmover公司威脅linux社群,可能現在我們就沒有免費而超級好用的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 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會提示你的工作區內容被修改了,這時我們輸入

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會幫助你直接把操作放入暫存區,所以,你可以直接提交你的刪除操作。

版本管理 玩轉git 分支管理

接下來我們詳細地介紹一下。檢視所有分支 這樣說明只有master分支,且當前處在master分支上,前面的 號代表當前處於的位置。建立分支 git brand wechat這時我們檢視分支 這時就有了兩個分支,但是我們仍然處於master分支上。接下來我們切換分支。現在我們就處於wechat分支上了...

版本管理 玩轉git 團隊合作

如果你想讓一位叫 夥伕 的程式設計師,和你一起開發,首先你得在你的 倉庫把夥伕新增到此專案中來,讓其成為開發者。具體步驟 專案 管理 專案成員管理 開發者 新增專案成員 輸入 huofu 在github中的具體步驟 專案 settings collaborators 輸入 huofu 為了給大家演示...

git版本管理的快速使用入門總結(自用)

git config user.name git config user.email 修改或切換當前的使用者和郵箱 git config global user.name your username git config global user.email your email 以碼雲為例 增加遠端...