1. 程式人生 > >碼雲gitee+git入門篇(二)——程式碼託管

碼雲gitee+git入門篇(二)——程式碼託管

書接上回:碼雲gitee+git入門篇(一)——簡介、git安裝
繼對gitee和git的簡單介紹以及git安裝之後,這篇部落格主要介紹如何使用git命令,從而在碼雲上進行程式碼託管。
首先,參考碼雲平臺幫助文件先介紹一下git中的幾個重要概念:分支、提交、拉取和推送,有助於幫助理解下面的內容。

1. 分支(git branch命令)

git預設分支一般是master,當然,這是可以修改的,我們在master完成一次開發,生成了一個穩定版本,那麼當需要新增新功能或者做修改時,只需要新建一個分支,然後在該分支上開發,完成後合併到主分支即可,分支功能解決了正在開發的版本與上線版本穩定性衝突的問題。

2. 提交(git commit命令)

git對於版本的管理其實是對提交的管理,git使用40個位元組長度的16進位制字串來標識每一個提交,每一個提交具有唯一的標識,根據這個標識可以任意回退。

3. 拉取(git pull命令)

用於取回遠端倉庫某個分支的更新,再與本地倉庫合併。

4. 推送(git push命令)

用於把本地的程式碼更新到遠端倉庫。

一、建立遠端程式碼倉庫
1. 登陸gitee賬號:
這裡寫圖片描述
2. 新建專案:
這裡寫圖片描述
點選新建後,可以看到遠端程式碼倉庫建立成功,並且有一個README.md檔案:
這裡寫圖片描述

二、建立原生代碼倉庫
1. 在本地一個盤下新建一個資料夾,當作原生代碼倉庫,也就是說希望之後這個資料夾裡的檔案的改動都能被git進行管理。
例如我在F盤內新建一個名為testGit的資料夾:
這裡寫圖片描述


2. 在該檔案內按住Shift鍵並點選滑鼠右鍵,選擇”在此處開啟Powershell視窗“,bash,進入Linux環境(剛安裝了Ubuntu,因為打算學點Linux命令,嘿嘿,如果沒有安裝Ubuntu,就不需要bash,直接執行git命令就行)執行程式碼:

git init

這裡寫圖片描述
這句話的意思是初始一個本地倉庫,之後可以看到在該資料夾下多了一個.git資料夾,用於記錄所有與管理本倉庫相關的檔案,
所以請小心改動。
這裡寫圖片描述

三、進行程式碼託管
原生代碼倉庫和遠端程式碼倉庫都建立好之後,需要把它們進行同步才能在gitee上進行程式碼託管。

1.原生代碼倉庫與遠端程式碼倉庫進行同步,執行程式碼:

git remote add origin https://gitee.com/gxx_gitee/testGit.git

其中遠端庫的名字就是origin,這是git預設的叫法,也可以改成別的,但是origin這個名字一看就知道是遠端庫。

我試驗過origin可以改為專案名,或者和專案名不同也都是可以的,因為重要的是後面的url,每個遠端程式碼庫都有一個自己的url,
所以本地倉庫本質上是和這個url所指代的遠端倉庫進行關聯的。
這裡寫圖片描述

2.拉取遠端程式碼庫
由於在建立遠端倉庫時會初始化一個README.md檔案,而本地倉庫裡沒有,所以需要先執行pull操作將遠端倉庫拉取合併到本地倉庫,否則會出錯。執行程式碼:

git pull origin master

這裡寫圖片描述
注1:由於在本地建立了程式碼倉庫,git預設關聯的庫在本地,所以直接執行git pull命令是無效的,需要執行git pull origin master命令才行,這句話的意思是推送到遠端庫master分支,此外,也可以根據提示執行一下git branch --set-upstream origin master命令,以後就可以直接使用git pull了】

此時可以看到在原生代碼倉庫中多了一個README.md檔案。
這裡寫圖片描述

注2:如果遇到錯誤提示“fatal: refusing to merge unrelated histories”,出現這種錯誤是因為git會以為這兩個倉庫不同所以進行無法合併,在執行pull操作時新增–allow-unrelated-histories,即執行git pull origin master --allow-unrelated-histories就可以了】

3.向遠端程式碼倉庫推送檔案(例如在原生代碼倉庫中新建了test1.txt和test2.txt檔案,現把它們同步到遠端程式碼倉庫),執行程式碼:

git add .
git commit -m "對該操作的相關描述"

這裡寫圖片描述
可以看到,git追蹤到了倉庫中檔案的變化,所以說git起到了作用。現在執行push操作將它推送到遠端程式碼庫:

git push
git push --set-upstream origin master

這裡寫圖片描述
注3:這裡使用git push命令會和上面使用git pull時出現同樣的問題,根據提示git push --set-upstream origin master,以後就可以直接使用git push命令了】
重新整理遠端程式碼倉庫,可以看到檔案被成功的同步到了遠端倉庫:
這裡寫圖片描述

當然,同步一個資料夾到遠端倉庫與同步單個檔案相同,只不過無法同步空資料夾到遠端倉庫,因為git會認為沒有改動。

【說明】:
很明顯,這種方式在程式碼倉庫同步上比較繁瑣,所以我也不是很推薦,但是理解這種方式還是很重要的,下面介紹一種簡單點的方式。

一、建立遠端程式碼倉庫
同上。例如我在gitee上建立了專案testGit1,每個遠端程式碼庫都有一個自己的url:
這裡寫圖片描述
二、克隆專案到本地
在本地一個盤下按住Shift鍵並點選滑鼠右鍵,選擇”在此處開啟Powershell視窗“,bash,進入Linux環境(如果沒有安裝Ubuntu,就不需要bash,直接執行git命令就行)執行程式碼:

git clone 專案的url

這裡寫圖片描述
然後就會發現在該盤下面就有了一個同名資料夾,並且.git目錄和README.md檔案都有,這兩個程式碼倉庫都已經同步好了:
這裡寫圖片描述

三、進行程式碼託管
向遠端程式碼倉庫同步檔案(例如在原生代碼倉庫中新建了test1.txt和test2.txt檔案,現把它們同步到遠端程式碼倉庫),進入到該檔案下,執行程式碼:

git add .
git commit -m "對該操作的相關描述"

這裡寫圖片描述
可以看到,git追蹤到了倉庫中檔案的變化,所以說git起到了作用。現在執行push操作將它推送到遠端程式碼庫:

git push

這裡寫圖片描述

注4:這裡可以直接使用git push命令,因為遠端建立了程式碼倉庫,git預設關聯的庫在遠端,git push是預設推送到遠端庫master分支】
重新整理遠端程式碼倉庫,可以看到檔案被成功的同步到了遠端倉庫:
這裡寫圖片描述

【說明】:
很明顯,這種方式就簡單多啦~
使用git命令時遇到的很多問題,其實根據錯誤提示都可以自己修正,或者可以直接執行git檢視git命令,對於具體某個命令的使用可以執行git 命令的名字 -help檢視詳情。