Git,Github和Gitlab簡介和使用方法

2022-05-06 01:30:09 字數 3641 閱讀 4273

git是乙個版本控制系統(version control system,vcs)。

版本控制是一種記錄乙個或若干檔案內容變化,以便將來查閱特定版本修訂情況的系統。

多年前,我在法國做第乙個實習時(2023年),那時候自己程式設計還在入門階段,根本沒聽過版本控制系統。

那時候真是蠢(現在也沒好到**去),每次修改多一點的**,就要複製、黏貼整個專案目錄。因此,公司的電腦裡有著幾十個專案的副本(簡直了)。

前不久,我看到公司的乙個實習生也在做和我多年前同樣的事。而且我們問他,他說沒聽說過版本控制系統...

現在,我用git也有幾年了吧。絕對是越用越爽,不用不爽;一朝使用,愛不釋手。

每天到公司第一件事,開電腦;第二件事,在終端中切換到專案目錄,然後輸入git命令。

有了版本控制系統,就可以不用擔心檔案丟失,不小心誤修改檔案等等「事故」,而且你可以隨便回到歷史記錄的某個時刻。

svn, cvs這類早期的集中式版本控制系統,都有乙個單一的集中管理的伺服器,儲存所有檔案的修訂版本,而協同工作的人們都通過客戶端連到這台伺服器,取出最新的檔案或者提交更新。

它們的原理類似下圖:

集中式版本控制系統

而git或mercurial這類分布式版本控制系統, 才是現代的首選。因為分布式的優勢絕對顯著。

在分布式版本控制系統裡,客戶端並不只提取最新版本的檔案快照,而是把**倉庫完整地映象下來。

這麼一來,任何一處協同工作用的伺服器發生故障,事後都可以用任何乙個映象出來的本地倉庫恢復。因為每一次的提取操作,實際上都是一次對**倉庫的完整備份。

分布式版本控制系統

現在,google, facebook, microsoft等世界級公司每天在用git。

眾所周知,it界大牛很多, 但是大牛中的大牛稀少。

linus torvalds就是其中之一。

linus torvalds不但開創了linux作業系統(當然了, 開源社群對linux貢獻極大, 參看我的 【linux探索之旅】開宗明義+第一部分第一課:什麼是linux? ), 而且他發明了git版本控制系統。

現在的android系統底層就是基於更改過的linux系統,你說linus torvalds是不是貢獻極大。

git的誕生很有趣:

2023年linux 核心開發社群正面臨嚴峻的挑戰:他們不能繼續使用 bitkeeper(乙個分布式版本控制系統) 了(原因是當時bitkeeper 著作權所有者決定收回授權,核心開發團隊與其協商無果),而又沒有其他的 scm (software configuration management)可滿足他們的分布式系統的需求。

linux 之父 linus torvalds 接受了這個挑戰,決定開發乙個新的版本控制系統。週末他消失了,新的一周,git 問世了。lt就是威武。

atlassian為git做了乙個10年的紀錄圖。

安裝git很簡單,在ubuntu等debian族的linux系統上,只要輸入下面命令:

[sql]view plain

copy

su"operator">"keyword" style="font-weight:bold;">do apt-"keyword" style="font-weight:bold;">get install git-"keyword" style="font-weight:bold;">all

關於安裝git,可以看這個鏈結

安裝完git就可以對其做一些配置。

git有乙個工具被稱為git config,它允許你獲得和設定配置變數;這些變數可以控制git的外觀和操作的各個方面。這些變數可以被儲存在三個不同的位置:

/etc/gitconfig 檔案:包含了適用於系統所有使用者和所有庫的值。如果你傳遞引數選項』--system』 給 git config,它將明確的讀和寫這個檔案。

~/.gitconfig 檔案 :具體到你的使用者。你可以通過傳遞--global 選項使git 讀或寫這個特定的檔案。

位於git目錄的config檔案 (也就是 .git/config) :無論你當前在用的庫是什麼,特定指向該單一的庫。每個級別重寫前乙個級別的值。因此,在.git/config中的值覆蓋了在/etc/gitconfig中的同乙個值。

我的git config(配置)列表:

我的git config(配置)列表

因為我比較喜歡偷懶(程式設計師需要學會偷懶好麼), git命令有幾個太長的, 我就用alias(別名)來替代了, 這樣平時輸入git命令就快了很多, 簡直飛起!

我最常用的git命令(全名,沒用alias之前):

pro git這本書(也可以看其電子版)絕對是git入門和進深的不二選擇。

我的同桌說:他進公司時,被要求先讀兩遍這本書。

英文版:

中文版:

github和git是兩回事。

github是2023年由ruby on rails編寫而成。github同時提供付費賬戶和免費賬戶。這兩種賬戶都可以建立公開的**倉庫,但是付費賬戶也可以建立私有的**倉庫。

為什麼現在github這麼火,以至於世界頂級公司和專案的原始碼很多都託管在github上,首先:

顏值高!

現在這世代還是得看看顏值的。你說sourceforge等**託管**也年歲很久了,為什麼沒有github那麼火呢?

關鍵是github長得好看(你長這麼好看,說什麼都是對的)。

對比github和sourceforge

github

sourceforge

反正我看了github再來看sourceforge的主頁,我已經不想用sourceforge了。

軟體的顏值體現了設計者的審美觀以及設計能力。

2023年,github已經取代sourceforge,成為最活躍的**交流社群。這意味著在open source community(開源社群),git取代了svn已經成為事實。

而且,github現在都快成為程式設計師簡歷的乙個重要加分條件了。

如果你的簡歷裡放上你的github鏈結,招聘者通過你對開源專案的貢獻和你自己的專案**,就可以對你的水準了解大概(我還沒把我的專案都放到github上,慢慢來吧)。

linus torvalds的github頁面

github有個小缺陷 (也不能算是缺陷吧), 就是你的repo(repository的縮寫,表示「倉庫」)都需要public(公開), 如果你想要建立private(私人)的repo, 那得付錢。

不過, 幸好, gitlab解決了這個問題, 可以在上面建立免費的私人repo。

比如我們公司就是用gitlab來管理專案的( 【程式設計師】專案經理如何調動組員積極性 )。

我在公司的gitlab

可以看到,我是從2023年10月12日在ercom公司工作的,一直活躍度還不錯(必須為中國人爭光麼,我可是組裡最努力的)。

再看我個人的gitlab賬戶頁面,至今只有幾個專案,因為大部分都開源在github上。

我的個人gitlab

要建立gitlab的新專案很簡單,和github類似,只要點選new project按鈕,填寫基本資訊即可。

建立專案按鈕

填寫gitlab專案資訊

可以看到,專案的預設屬性是private(私人的),當然,你也可以選擇public(公開的)或internal(內部的)。

SourceTree安裝教程和GitLab配置詳解

一 安裝git 二 安裝sourcetree 安裝sourcetree的時候是需要使用vpn郵箱申請,可以自行度娘個vpn.自行更換安裝路徑 如果沒有vpn 會提示 google recaptcha failed to load 輸入郵箱位址,暱稱,密碼 驗證ok之後 點選 sign up 然後就會...

Git, GitHub和GitLab的區別和聯絡

話說有將近一年沒更新過部落格了。慚愧。今天整理下 git,github和gitlab這三個名詞的概念,雖然經常用github,但是其實對於這些概念還是有些混淆。git是一種版本控制系統,是乙個命令和工具。git是乙個開源的分布式版本控制系統 version control system 它沒有 伺服...

Git GitHub 和 Gitee 的使用

git github 和 gitee 的使用 git是分布式版本控制軟體,也是 託管中心 協作開發平台。git與svn的區別 git 分布式版本控制軟體 倉庫對倉庫 svn 集中式版本控制軟體 專案對倉庫 git的分類 github 國外的 gitee 國內的,又叫最碼雲。git的一些命令 比如建立...