如何貢獻 Git 平台上的專案 ── Git 平台入門協作教學
•2022年7月25日
想必有在寫程式、使用 Git 平台的程式開發者,有時會想幫一些開發者修改專案的程式碼,讓整個程式運行更流暢或者減少開發者的負擔吧?在這裡就教大家如何貢獻一個 Git 平台上的專案,讓您也可以為程式的生態盡一份心力!
此文章主要聚焦於如何貢獻,現今在網路上很多 Git 平台,在此會多以 GitHub 及 GitLab 介面講解。
步驟一:Fork 專案
因為那個專案不是你的,所以您對該專案只能複製,並不能做其他修改。所以我們必須先 Fork,讓 Git 平台複製一份該專案的副本給我們,我們才能開始修改程式碼,並將修改推送至專案副本。
首先到您想要貢獻的專案,點選 Fork
按鈕:
Repository name
預設會是該專案的名字,然後點選 Create Fork
創建:
機器龍的精神食糧
GitLab 的 Fork 部分其實跟 GitHub 大同小異,多了能決定專案是否此副本能被別人看到的 Visibility Level
選項。
小提示
Project Url
欄位後面設定的是這個副本的擁有者是誰
複製完成後,他會幫你跳轉至您的副本專案網頁,至此您就完成了 Fork 專案,並且您會在專案標題下方看到 Fork from foo/bar
。
步驟二:Clone 專案副本、環境設定與開始編輯
首先我們到 GitHub 複製專案連結,點選 Code
按鈕 HTTPS
來複製連結,
c
接下來我們開啟終端機,透過以下指令將專案副本複製到電腦上您想要的位置,
機器龍的精神食糧
然後專案就會被複製到電腦上您指定的位置了,但是請先別急,請先透過以下指令添加一個原本專案的 git 數據庫(在此我命名該數據庫為 upstream):
GitHub Flow、GitLab Flow 建議我們在多人實作時建立分支,目的在能夠安全實驗程式碼與執行變更,接下來,輸入以下指令建立新分支並切換過去:
然後就可以開始編輯了!
當您每編輯到了一個階段後,您可以在該資料夾下開啟終端機,並 適當 使用下方指令進行將新增檔案至索引、儲存變更、提交推送變更至 Git 平台上的副本專案等動作:
機器龍的精神食糧
步驟三:向原專案發出推送要求
請先前往 Git 平台上專案副本網頁,點選 Contribute
-> Open Pull Request
小筆記
- GitHub 到專案頁面,如果有出現
XXX had recent pushes...
也可以按下該黃色橫幅右側的Compare & pull request
:
- GitLab 到專案頁面,在專案副本網頁上方會出現一則寫著
You pushed to...
的訊息,請點選下方的Create Merge Request
按鈕:
接下來就會出現填寫 Pull Request 資訊的介面,填好相關資訊以後請按下 Create Pull Request
按鈕正式向原專案發出推送要求。
創建完成之後將會透過 Email 通知該 Pull Request 的各種更新動態,
等待結果!
當有人對您發出的 Pull Request 做出回應時,您會收到相關通知:
機器龍的精神食糧
如果是 GitLab 則不會通知!請自己定時前往確認您發出的推送請求之目前處理進度!
點進去即可查看目前該 Pull Request 的相關消息,如果您有看到 Pull Request 標題下方有 Merged
字眼,恭喜您,您的推送請求已經被開發者批准了!您可以按下下方的 Delete branch
刪除分支!
繼續貢獻
當然您可以選擇繼續貢獻,但在繼續貢獻之前,請檢查是否原專案的主分支有被變更過,如果有,請先輸入以下指令以拉取原專案有被做過的變更:
我想先告知你
若您是 GitLab,主分支通常會是 main
而不是
master
!不過可能依照每個專案會有不同的設定。
然後您就可以繼續編輯等作業了
常見問題
無法使用 git commit
?
Please tell me who you are
這通常會發生在您第一次使用 Git CLI 進行專案管理的時候,因為他沒有您的資訊,所以 git commit
指令無法執行,請跟著他的指令提示填入您的相關資訊後,再輸入一次 git commit
即可正常提交。
機器龍的精神食糧
Nothing to commit, working tree clean
這代表您沒有對檔案做出變更,或是沒有使用 git add
指令先將檔案加入到 Git 索引內。
無法使用 git push
?
Everything up-to-date
這跟剛剛 Nothing to commit, working tree clean
差不多,您沒有檔案的修改需要被推送上 Git 平台。
Support for password authentication was removed...
通常此問題會發生在 Linux 或者一些要在終端機中輸入使用者帳號、密碼以登入的終端機上。因為 密碼驗證 GitHub 已經在 2021 年 8 月 13 日時被禁止了,所以登入時,Username
欄位一樣輸入使用者名字,Password
請輸入您帳戶的 Personal Access Token (PAT)
。如果不知道如何生成自己帳戶的 Personal Access Token
,請參考 Creating a personal access token。
機器龍的精神食糧