- git 是一種版本控制系統,是一個命令,是一種工具。
- github 是一個基於git實現在線代碼托管的倉庫,向互聯網開放,企業版要收錢。
- gitlab 類似 github,一般用於在企業內搭建git私服,要自己搭環境。
- gitee 即碼雲,是 oschina 免費給企業用的,不用自己搭建環境。
- git-ce 是社區版,gitlab-ee是企業版,收費版。
- 參考鏈接1:https://blog.csdn.net/m0_46080566/article/details/111194608
- 參考鏈接2:https://www.zhihu.com/question/478022295
- ----------------------------------------------------------------------------------------------------
- Git中版本庫的理解
- 什么是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。
- 創建一個版本庫非常簡單,首先,選擇一個合適的地方,創建一個空目錄
- 通過git init命令把這個目錄變成Git可以管理的倉庫
-
瞬間Git就把倉庫建好了,而且告訴你是一個空的倉庫(empty Git repository),細心的讀者可以發現當前目錄下多了一個.git的目錄
-
這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄里面的文件,不然改亂了,就把Git倉庫給破壞了
-
如果你沒有看到.git目錄,那是因為這個目錄默認是隱藏的,用ls -ah命令就可以看見
- 所有的版本控制系統,其實只能跟蹤文本文件的改動,比如TXT文件,網頁,所有的程序代碼等等,Git也不例外。
- 版本控制系統可以告訴你每次的改動,比如在第5行加了一個單詞“Linux”,在第8行刪了一個單詞“Windows”。
- 而圖片、視頻這些二進制文件,雖然也能由版本控制系統管理,但沒法跟蹤文件的變化,只能把二進制文件每次改動串起來,也就是只知道圖片從100KB改成了120KB,但到底改了啥,版本控制系統不知道,也沒法知道。
- Git中分支的理解
-
分支就是科幻電影里面的平行宇宙,當你正在電腦前努力學習Git的時候,另一個你正在另一個平行宇宙里努力學習SVN。
-
如果兩個平行宇宙互不干擾,那對現在的你也沒啥影響。不過,在某個時間點,兩個平行宇宙合並了,結果,你既學會了Git又學會了SVN!
-
分支策略
-
在實際開發中,我們應該按照幾個基本原則進行分支管理:
-
首先, master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面干活;
-
那在哪干活呢?干活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev分支合並到master上,在master分支發布1.0版本;
-
你和你的小伙伴們每個人都在dev分支上干活,每個人都有自己的分支,時不時地往dev分支上合並就可以了。
-
所以,團隊合作的分支看起來就像這樣:
- 一個本地庫能不能既關聯GitHub,又關聯Gitee呢?
-
答案是肯定的,因為git本身是分布式版本控制系統,可以同步到另外一個遠程庫,當然也可以同步到另外兩個遠程庫。
- 使用多個遠程庫時,我們要注意,git給遠程庫起的默認名稱是origin,如果有多個遠程庫,我們需要用不同的名稱來標識不同的遠程庫。