git學習總結

2022-01-11 10:31:10 字數 2552 閱讀 2025

總算有機會使用git了,ubuntu 上搭了個 gitlab 服務,為避免後人踩坑,分享下:

對於linux小白來說,安裝 ubuntu 桌面版,比命令列直觀。先熟悉後,視情況再安裝 ubuntu 服務版。

安裝docker版的gitlab,整合了 redis,posgresql 等依賴元件。

docker版的gitlab安裝很簡單,真的僅一句話,絲毫不折騰:

sudo docker run --detach \

--hostname gitlab.linux.com \

--publish 443:443 --publish 80:80 --publish 22:22 \

--name gitlab-ce \

--restart always \

--volume /media/administrator/gitlabdata/gitlab/config:/etc/gitlab \

--volume /media/administrator/gitlabdata/gitlab/logs:/var/log/gitlab \

--volume /media/administrator/gitlabdata/gitlab/data:/var/opt/gitlab \

gitlab/gitlab-ce

我安裝的是gitlab 10.1.4 版本

其中網域名稱 gitlab.linux.com 在hosts裡解析

administrator 是我的linux使用者名稱

gitlabdata 是我另掛載的乙個磁碟,用於儲存倉庫資料

sudo dockers ps 

有 (health) 字樣說明服務正式啟動了

如果服務未成功執行,執行:

sudo docker start gitlab-ce //啟動docker

sudo docker exec -it gitlab-ce bash //進入docker

gitlab-ctl restart //啟動gitlab

sudo dockers ps //檢視docker服務

exit //退出docker

git學習總結乙個檔案會有很多版本,乙個資料夾也會有多個版本,本地電腦當前資料夾下儲存的是最新版本,每次編輯器儲存後,檔案實時覆蓋。

如果要記錄乙個歷史版本,就進行一次commit,git會保留下當前檔案的快照,生成乙個版本號,作為歷史版本,以便查詢,比較,還原。

我們當前開發工作的叫develop分支。實際工作中,我們會遇到歷史版本的檔案需要修改的情況。

比如已發布的程式發現了bug,需要立即修正,我們就要獲取歷史版本,修正bug後立即發布,這就另生成了乙個版本分支。

因為修改的基礎**不是最新的develop版本,在最新的develop原始碼下,這個bug依舊存在,尚未修復。

為了直觀,我們預先建立乙個發布分支叫master分支,master分支是develop分支中里程碑版本的集合。

當有發布的程式需要修正bug,就獲取master分支的最新版本,修改後提交master分支,同時也應把這部分修改內容提交到develop分支。

至此,git作為個人的版本管理工具已經功能完備了。

但,git作為團隊協作工具,還需要管理不同人的不同版本的檔案,以免檔案互相覆蓋。

我們把乙個檔案共享在團隊伺服器上,團隊成員將此檔案各自複製到本地電腦上,同乙個檔案在不同的個人電腦上會有多個副本。

如果此檔案被不同的人各自修改,再次上傳到伺服器上,此檔案不應被互相覆蓋。

這時git服務端就會在接收檔案時,智慧型判斷會不會覆蓋別人的修改內容,如果有此可能,會提示檔案有衝突,阻止上傳。

上傳失敗,通常的做法是,再次從伺服器上獲取最新版本的檔案,在本地重新修改合併後,再次嘗試推送到伺服器上。

git判斷你本次修改的檔案基礎版本跟伺服器上該檔案最新版本號是否一致,如果一致,才允許上傳並覆蓋共享的檔案。

為了減少此類衝突情況的發生,我們應不定期地頻繁獲取伺服器上的最新版本,修改後及時推送。

這樣團隊成員修改本地檔案時,就是在修改最新版本的檔案,而不是被別人修改過的過期版本的檔案。

一次獲取檔案(pull+rebase)的過程可分離為3個步驟:獲取服務端檔案(fetch),與本地工作區檔案合併(merge),重置本地為最新的版本號(rebase)

另外,git作為乙個分布式版本管理工具,還有乙個功能,可以支援不同的團隊,建立自己的**庫。

從官方**庫中,可以fork出乙個分支到團隊git伺服器上,作為團隊開發的獨立**庫,而不會影響到官方的**庫。

需要貢獻**時,向官方傳送合併請求,並非主動推送**到官方**庫。

官方維護人員收到合併請求後,視情況獲取貢獻者的**,再合併到官方**庫。

這個示意圖是個人初步理解,非權威僅供參考

Git 學習總結

一 建立版本庫 repository mkdir learngit 建立乙個名字為learngit的資料夾 cd learngit 進入到learngit資料夾 pwd 顯示當前目錄 git init 把這個目錄變成git可以管理的倉庫 在該目錄下編寫乙個readme.txt檔案 該目錄的子目錄也行...

Git學習總結

1.git常用命令 git init 初始化乙個目錄成倉庫 新增檔案到倉庫 git add 檔名 把檔案修改新增到stage 暫存區 可多次新增 gitcommit 提交到倉庫 把暫存區的內容提交到當前分支 git status 檢視當前倉庫中是否有修改過且未提交的 git diff 檔名 顯示當前...

Git學習總結

1 git安裝的配置 git config global user.name your name git config global user.email your email 2 初始化git倉庫 git init 3 新增檔案到git倉庫 git add file1 新增file1 git 新增...