指南:從 Fork 到 Pull Request 的首次開源貢獻完整流程)
文檔教程開源治理【免費下載鏈接】first-contributions? Help beginners to contribute to open source projects項目地址https://gitcode.com/gh_mirrors/fi/first-contributions點擊查看免費下載本指南以開源倉庫 first-contributions 的核心入門文檔為主體系統(tǒng)講解初學(xué)者完成第一次開源貢獻所需的完整 Git 工作流Fork 倉庫 → 克隆到本地 → 創(chuàng)建分支 → 修改并提交 → 推送遠程 → 提交 Pull Request。讀完本文你將能獨立完成一次真實的開源貢獻并掌握分支管理、遠程同步與沖突處理等后續(xù)進階技能。文檔背景與本指南的定位本文基于倉庫中的入門文檔 README.pcm.md 展開。該文檔是項目主 README 的尼日利亞皮欽英語Nigerian Pidgin翻譯版本與 主 README 內(nèi)容完全對應(yīng)項目定位是幫助初學(xué)者以最簡單的方式完成第一次開源貢獻項目描述為 Help beginners to contribute to open source projects。倉庫根目錄的 Contributors.md 已有近六千行貢獻者名單每位貢獻者的名字正是通過本文將要講解的流程逐步添加進去的——它本身就是這套工作流最好的運行示例。文章中所有命令均以終端操作為主。如果你不習(xí)慣命令行倉庫還提供了使用圖形界面工具的教程可在文章末尾的「圖形界面工具」一節(jié)查看。開始之前準備 Git 環(huán)境整個流程的第一步是確認本機已安裝 Git。在終端執(zhí)行g(shù)it --version如果提示找不到命令需要先完成 Git 的安裝與基礎(chǔ)配置。安裝完成后建議先用git config配置用戶名和郵箱因為提交commit會記錄作者信息。關(guān)于用戶信息、默認編輯器等配置項的詳細說明可參考倉庫文檔 configuring-git.md。第一步Fork 倉庫進入 first-contributions 倉庫頁面點擊頁面頂部的Fork按鈕。Fork 的本質(zhì)是在你自己的賬號下創(chuàng)建一份該倉庫的完整副本。這一步之后你會擁有一個屬于自己的first-contributions倉庫后續(xù)所有修改都發(fā)生在你的副本上不會影響原始倉庫。第二步克隆倉庫到本地克隆clone是把遠程倉庫的內(nèi)容下載到本機。操作如下登錄 GitHub打開你剛才 Fork 出來的倉庫點擊頁面上的Code按鈕建議切換到 SSH 標(biāo)簽頁點擊復(fù)制按鈕把倉庫地址復(fù)制到剪貼板打開終端執(zhí)行g(shù)it clone命令git clone url wey you just copy其中url wey you just copy去掉引號替換為剛復(fù)制的地址即你 Fork 出來的倉庫地址。例如git clone gitgithub.com:this-is-you/first-contributions.git這里的this-is-you是你的 GitHub 用戶名。執(zhí)行成功后遠程倉庫的全部內(nèi)容就被復(fù)制到了本機。如果想在本地查看本倉庫鏡像的代碼而不進行貢獻流程也可以直接克隆鏡像地址git clone https://gitcode.com/gh_mirrors/fi/first-contributions.git。第三步創(chuàng)建分支先進入倉庫目錄如果還沒進去的話cd first-contributions然后使用git switch命令創(chuàng)建一個新分支git switch -c your-new-branch-name例如git switch -c add-desmond-ezo-ojile分支是 Git 的核心概念之一它讓你在獨立的開發(fā)線上修改代碼而不會干擾主分支main。這也是后續(xù) Pull Request 能夠「按分支評審合并」的基礎(chǔ)。兼容性提示如果執(zhí)行g(shù)it switch時出現(xiàn)類似 Git:switchis not a git command 的錯誤說明你的 Git 版本較舊。此時改用等價的git checkout命令即可git checkout -b your-new-branch-name此后備方案詳見主文檔 README.md 中的說明。第四步修改文件并提交現(xiàn)在開始做出你的實際貢獻。用文本編輯器打開倉庫根目錄的 Contributors.md 文件把你的名字添加進去。注意不要加在文件開頭或結(jié)尾而是加在文件中間任意位置這是為了讓多位貢獻者的提交減少沖突概率。保存文件后回到項目目錄執(zhí)行g(shù)it status你會看到該文件已被標(biāo)記為有變更git statusgit status會列出工作區(qū)中所有改動是后續(xù)每個步驟前都建議執(zhí)行的狀態(tài)檢查命令。接下來把改動添加到暫存區(qū)staging area使用git addgit add Contributors.mdgit add只暫存你明確指定的文件這給了你精確控制「哪些改動進入下一次提交」的能力。然后提交這些改動git commit -m Add your-name to Contributors list把your-name替換成你自己的名字。-m參數(shù)用于附加提交信息一條清晰、描述性的提交信息是開源協(xié)作的基本禮儀。第五步推送到 GitHub提交只發(fā)生在本地接下來要把本地分支推送到你的 GitHub 倉庫git push -u origin your-branch-name把your-branch-name替換為你第三步創(chuàng)建的分支名。-u參數(shù)會把本地分支與遠程分支建立跟蹤關(guān)系此后在該分支上直接執(zhí)行g(shù)it push即可無需再指定遠程和分支名。推送失敗認證錯誤處理如果推送時遇到認證錯誤最常見的情形是 GitHub 自 2021 年 8 月 13 日起移除了密碼認證錯誤信息通常形如remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. fatal: Authentication failed for https://github.com/your-username/first-contributions.git/解決辦法是按 GitHub 官方指引為賬號生成并配置 SSH 密鑰SSH key以 SSH 方式認證。此外可用以下命令檢查當(dāng)前的遠程地址配置git remote -v如果輸出類似于origin https://github.com/your-username/your_repo.git (fetch) origin https://github.com/your-username/your_repo.git (push)說明仍然走 HTTPS 方式、會反復(fù)提示輸入用戶名密碼??筛挠?SSH 地址git remote set-url origin gitgithub.com:your-username/your_repo.git這樣即可避免后續(xù)的認證報錯。第六步提交 Pull Request推送成功后回到你在 GitHub 上的倉庫頁面頁面上會出現(xiàn)一個Compare pull request按鈕點擊它然后提交 Pull Request。Pull Request簡稱 PR是開源協(xié)作的關(guān)鍵環(huán)節(jié)它向原始倉庫的所有者發(fā)出「請合并我分支上的這些改動」的請求。提交后項目維護者會審查你的改動并合并到主分支合并完成后你會收到一封變更已合并的通知郵件。至此你已完整走通了開源貢獻的標(biāo)準流程fork → clone → edit → pull request。這個四步工作流在幾乎所有 GitHub 協(xié)作項目中都會反復(fù)遇到。貢獻完成之后進階主題第一次貢獻只是起點。倉庫在 additional-material.md 中整理了一批進階 Git 場景以下兩個與日常協(xié)作關(guān)系最密切保持 Fork 與上游倉庫同步隨著項目持續(xù)演進你 Fork 的倉庫會落后于原始倉庫。開源協(xié)作中常見「三角工作流」原始公開倉庫 → 你的 GitHub Fork → 你的本地倉庫。同步的基本思路是先把原始倉庫稱為upstream的最新內(nèi)容拉到本地再推送到你的 Fork。首先為本地倉庫添加上游遠程只需配置一次git remote add upstream https://github.com/firstcontributions/first-contributions.git接著切換到 main 分支可用git status第一行確認當(dāng)前分支git checkout main然后拉取上游最新版本并變基到本地 main 分支git fetch upstream git rebase upstream/main最后推送到你的 Fork即名為origin的遠程git push origin main如果想一步完成「拉取并合并上游 main」的操作可以直接使用git pull upstream main建議在 GitHub 提示「你的分支落后于上游 N 個提交」時執(zhí)行上述同步流程。完整說明見 keeping-your-fork-synced-with-this-repository.md。解決合并沖突當(dāng)不同分支修改了同一處內(nèi)容、Git 無法自動合并時就會產(chǎn)生合并沖突。沖突文件中會插入如下標(biāo)記 HEAD 你的分支上的改動 來自其他分支的改動 branch-name其中 HEAD表示當(dāng)前分支的改動是分隔線 branch-name表示另一個分支的改動。解決步驟是用git status定位沖突文件位于 Unmerged paths 列表→ 編輯文件、保留期望的改動并刪除全部沖突標(biāo)記 → 用git add filename標(biāo)記已解決 → 最后提交合并。詳細流程見 resolving-merge-conflicts.md。其他常見場景索引倉庫的進階文檔還覆蓋了以下高頻場景均位于docs/additional-material/git_workflow_scenarios/目錄下修改最近一次提交amending-a-commit.md調(diào)整提交信息或補充遺漏的改動撤銷已推送的提交reverting-a-commit.md撤銷/重置本地提交undoing-a-commit.md將多個提交壓縮為一個squashing-commits.md常用于響應(yīng)評審者「把提交合并成一個并附上信息性提交信息」的要求移除文件與刪除分支removing-a-file.md、removing-branch-from-your-repository.md。圖形界面工具如果你更習(xí)慣圖形化操作而非命令行倉庫在docs/gui-tool-tutorials/下提供了多套工具的入門教程例如 GitHub Desktop、Visual Studio Code、GitKraken 等覆蓋了 Windows、macOS 等不同平臺。結(jié)語一份可復(fù)用的貢獻檢查清單回顧全文一次標(biāo)準貢獻可以濃縮為六步檢查清單Fork在原始倉庫頁面點擊 Fork獲得自己的副本Clone復(fù)制 Fork 地址并git clone到本地Branchgit switch -c your-branch-name創(chuàng)建獨立分支舊版 Git 用git checkout -bCommit修改 Contributors.md →git status檢查 →git add Contributors.md→git commit -m Add your-name to Contributors listPushgit push -u origin your-branch-name遇認證錯誤時改用 SSH key 或git remote set-url調(diào)整遠程地址Pull Request點擊Compare pull request提交 PR等待維護者審查合并。這套流程不僅適用于 first-contributions 倉庫也是所有 GitHub 開源項目通用的協(xié)作范式。完成首次貢獻后建議繼續(xù)閱讀倉庫中的 進階文檔 與各語言版本包括中文版 README逐步從「會提 PR」成長為熟練的開源貢獻者。贊分享文檔教程開源治理【免費下載鏈接】first-contributions? Help beginners to contribute to open source projects項目地址https://gitcode.com/gh_mirrors/fi/first-contributions點擊查看免費下載相關(guān)推薦first-contributions 實戰(zhàn)指南從 Fork 到 Pull Request 的首次開源貢獻完整流程first contributions 實戰(zhàn)指南從 Fork 到 Pull Request 的首次開源貢獻完整流程 導(dǎo)讀 本文基于 first contrib文檔教程開源治理first-contributions 首次開源貢獻實戰(zhàn)從 Fork 到 Pull Request 的完整指南first contributions 首次開源貢獻實戰(zhàn)從 Fork 到 Pull Request 的完整指南 本文以 GitHub 加速計劃 fi 鏡像中的文檔教程開源治理first-contributions 首次開源貢獻實戰(zhàn)指南從 Fork 到 Pull Request 的完整 Git 流程first contributions 首次開源貢獻實戰(zhàn)指南從 Fork 到 Pull Request 的完整 Git 流程 本篇指南以 first cont文檔教程開源治理創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考