Git和GitHub,你懂嗎?一文讓你徹底看懂


來源商業新知網,原標題:你真的懂Git和GitHub嗎?

 

知識圖譜,你真的懂Git和GitHub嗎?

周末,我正在家里看《最強大腦》,女朋友在一旁刷手機,相安無事。誰知道,剛過了沒多久,她突然問我:

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

版本控制

想要介紹什么是GitHub,就要介紹下什么是Git,想要介紹什么是Git,那就不得不提版本控制。 

我們知道,如果多台計算機在同一個局域網中,是可以進行局域網文件共享的。共享者可以通過設置把自己文件共享給他人進行閱讀和修改。 

知識圖譜,你真的懂Git和GitHub嗎?

對於同一份共享文件,如果又多個人需要修改的話會發生什么事情呢?假設現在有三個人,A分享了文件夾mhcoding,其中包含了三個文件mhcoding1.png,mhcoding2.png,mhcoding3.png,B和C需要對這份文件進行修改。

B和C分別把mhcoding文件夾拷貝到自己的電腦上,然后進行修改,改完之后需要再把自己修改上傳上去。B先改完了之后把自己的文件上傳上去,覆蓋了A的分享。之后C也改完了,也把自己的改動上傳上去。這樣,C就會把B的修改覆蓋掉。

為了上述這種問題,就需要通過一種方式來在C想要上傳文件的時候來提醒他,告訴他需要考慮到B已經改過文件的事情。

比較好的方式就是通過版本控制。

如果使用了版本控制系統,每一個團隊成員都可以在任何時間對任何文件毫無顧慮的進行修改,版本控制系統可以提醒我們文件修改沖突,甚至可以幫我們自動把多個人的改動合並到一起。

有了版本控制,我們還可以回溯查看以前某一個版本中具體文件的內容,還可以查看某一次改動的變更內容。非常適合團隊協作。

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

版本控制的方式

本地版本控制系統

許多人習慣用復制整個項目目錄的方式來保存不同的版本,或許還會改名加上備份時間以示區別。這么做唯一的好處就是簡單。不過壞處也不少:有時候會混淆所在的工作目錄,一旦弄錯文件丟了數據就沒法撤銷恢復。 

知識圖譜,你真的懂Git和GitHub嗎?為了解決這個問題,人們很久以前就開發了許多種本地版本控制系統,大多都是采用某種簡單的數據庫來記錄文件的歷次更新差異。
知識圖譜,你真的懂Git和GitHub嗎?集中化的版本控制系統接下來人們又遇到一個問題,如何讓在不同系統上的開發者協同工作?於是,集中化的版本控制系統應運而生。

這類系統,都有一個單一的集中管理的服務器,保存所有文件的修訂版本,而協同工作的人們都通過客戶端連到這台服務器,取出最新的文件或者提交更新。

知識圖譜,你真的懂Git和GitHub嗎?這種做法帶來了許多好處,特別是相較於老式的本地版本來說。現在,每個人都可以在一定程度上看到項目中的其他人正在做些什么。而管理員也可以輕松掌控每個開發者的權限,並且管理起來也輕松容易的多。

分布式版本控制系統

集中化最顯而易見的缺點是中央服務器的單點問題。如果中央服務器宕機一小時,那么在這一小時內,誰都無法提交更新,也就無法協同工作。

要是中央服務器的磁盤發生故障,碰巧沒做備份,或者備份不夠及時,就會有丟失數據的風險。

於是分布式版本控制系統面世了。在這類系統中,客戶端並不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。這么一來,任何一處協同工作用的服務器發生故障,事后都可以用任何一個鏡像出來的本地倉庫恢復。因為每一次的提取操作,實際上都是一次對代碼倉庫的完整備份。

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

Git

git其實就是一款我們前面介紹的分布式版本控制軟件,Git具有以下特點: 

  • 直接記錄快照,而非差異比較 

  • 近乎所有操作都是本地執行 

  • 時刻保持數據完整性 

  • 多數操作僅添加數據 

知識圖譜,你真的懂Git和GitHub嗎? 
程序員是比較典型的需要團隊協作的職業,大多數情況下,都是需要多個程序員同時開發同一個項目的,就好像多個程序員要同時修改一份word文檔一樣。所以,Git是很多程序員的必備工具。

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

GitHub

GitHub是一個面向開源及私有軟件項目的托管平台,因為只支持git 作為唯一的版本庫格式進行托管,故名GitHub。 

知識圖譜,你真的懂Git和GitHub嗎?所謂托管平台,也就是說他可以用於存放文件。只不過上面的文件都是可以公開被訪問到的。

GitHub是通過Git進行版本控制的軟件源代碼托管服務,並且,GitHub還引入了一些社交屬性。號稱是世界上最大的程序員(同性)交友網站。

知識圖譜,你真的懂Git和GitHub嗎?簡單的說,在GitHub上面,你可以提交你自己寫的代碼(發微博)、關注(粉)某人、關注(贊)某個項目、添加評論、Fork(轉發)一個項目來自己修改,這些功能和微博都是一樣的,只是將我們的吐槽換成了由各種編程語言寫的代碼。我們平時見到的大部分開源代碼也都是掛在上面的。

最近比較火的996icu項目我們說他有10多萬的Star,就是說由10W+的人關注了這個項目。

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

GitHub上那些奇葩"項目"

Dress - 女裝大佬聚集地 

有129名貢獻者在這個名為Dress的項目里集結,上傳了數千張女裝照,收獲了8000余顆星。

知識圖譜,你真的懂Git和GitHub嗎? 
你敢相信這是個碼農?

地址:https://github.com/komeiji-satori/Dress

Thanos - 滅霸命令

Thanos.sh是一個開源的個滅霸命令,可隨機刪除電腦上一半文件。

知識圖譜,你真的懂Git和GitHub嗎?地址:https://github.com/hotvulcan/Thanos.sh

nocode - 一行代碼都沒有

這是一個Issue比項目更精彩的項目,項目中一行代碼都沒有,Issue中各種裝逼。

知識圖譜,你真的懂Git和GitHub嗎?

想問下,Star這個項目的2.7萬人是有多無聊???

地址: https://github.com/kelseyhightower/nocode

programmer-job-blacklist 碼農找工作黑名單

地址:https://github.com/shengxinjing/programmer-job-blacklist

hangzhou_house_knowledge 杭州買房攻略

地址:https://github.com/houshanren/hangzhou_house_knowledge

howmanypeoplearearound 通過 Wi-Fi 信號估計附近有多少人

地址: https://github.com/schollz/howmanypeoplearearound

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?

知識圖譜,你真的懂Git和GitHub嗎?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM