該全面的指南可讓您介紹克隆,分叉和合併存儲庫的基本github操作。無論您是剛剛進行版本控制還是希望鞏固對GitHub工作流程的理解,本教程都將為您提供有效合作編碼項目所需的基本技能。
了解GitHub存儲庫
GitHub存儲庫充當項目的中央存儲位置,其中包含所有文件,文件夾和更改的完整歷史記錄。在進行特定操作之前,重要的是要了解遠程存儲庫(託管在GitHub上)和本地存儲庫(在您的計算機上)之間的差異。與GitHub合作通常涉及通過克隆或分叉創建存儲庫的本地副本,進行更改,然後通過合併整合這些更改。
遠程與本地存儲庫
GitHub上的存儲庫是遠程存儲庫。要在計算機上與它們合作,您需要創建本地副本,您可以通過克隆或叉車1來做到這一點。主要區別是:
- 遠程存儲庫: 在GitHub的服務器上託管,合作者可以訪問
- 本地存儲庫: 存在於計算機上,允許您在共享之前離線工作和測試更改
克隆存儲庫
克隆在您的計算機上創建存儲庫的本地副本。這是開始使用現有項目的最直接方法。
什麼是克隆?
克隆存儲庫時,您下載了存儲庫的完整副本,包括所有文件和提交歷史記錄。這可以與原始存儲庫建立連接,從而使您可以在具有寫入權限的情況下推回更改。
如何使用https克隆
- 找到克隆的存儲庫
- 導航到您要克隆的GitHub存儲庫
- 單擊文件列表上方的綠色“代碼”按鈕
- 選擇HTTPS選項以獲取存儲庫URL
- 使用git克隆存儲庫
- 打開您的終端或命令提示
- 導航到您要存儲存儲庫的目錄
- 鍵入以下命令:
- 按Enter開始克隆
- 如有必要,請進行身份驗證
- 對於私人存儲庫,您需要進行身份驗證
- GitHub不再接受HTTPS的密碼身份驗證
- 改用個人訪問令牌(PAT),您可以在GitHub設置中生成→開發人員設置→個人訪問令牌
- 開始使用克隆的存儲庫
- 使用以下方式導航到克隆的存儲庫目錄
- 現在您可以查看,編輯和使用文件
使用github桌面克隆
如果您喜歡圖形接口:
- 在GitHub桌面中,單擊“文件”→“克隆存儲庫”
- 選擇存儲庫來源:
- 從您的GitHub存儲庫中選擇
- 輸入任何存儲庫的URL
- 瀏覽本地存儲庫
- 選擇要存儲存儲庫的本地路徑
- 單擊“克隆”以最終確定過程
分叉存儲庫
分叉正在您的GitHub帳戶中創建他人存儲庫的個人副本,這使您可以自由嘗試更改而不會影響原始項目。
什麼時候到叉子而不是克隆
您應該在以下情況下提供一個存儲庫
- 您沒有寫入原始存儲庫的訪問權限
- 您想為開源項目做出貢獻
- 您想將某人的項目用作自己工作的起點
完整的分叉工作流程
- 分叉存儲庫
- 導航到您要分叉的存儲庫
- 單擊右上角的“叉子”按鈕
- 等待幾秒鐘才能在您的帳戶中創建叉子
- 克隆您的分叉存儲庫
- 分叉後,使用前面描述的方法將存儲庫克隆到本地計算機上
- 這會創建叉子的本地副本,而不是原始存儲庫
- 進行更改並推到叉子
- 對本地副本進行期望的更改
- 提交您的更改
- 將更改推向您的分叉存儲庫
- 創建拉動請求(可選)
- 如果您想返回原始項目,請創建一個拉請請求
- 這建議您更改原始存儲庫的所有者
了解關係
當您為存儲庫提供時:
- 原始存儲庫稱為“上游存儲庫”
- 您的副本是“分叉存儲庫”
- 這些存儲庫是分開的,可以獨立開發
- 您可以在需要時同步上游存儲庫的更改
與您的存儲庫合作
克隆或分配存儲庫後,您需要進行更改,提交它們並將其推回Github。
日常工作的基本git命令
- 檢查存儲庫狀態
- 為您的更改創建一個新分支
- 添加您更改的文件
- 或添加所有更改:
- 提交您的更改
- 將您的更改推向GitHub
合併存儲庫和分支機構
合併是GIT將一個分支或存儲庫的更改集成到另一個分支庫的方式。
了解GIT合併
GIT合併將委託的多個序列結合到一個統一的歷史中。在典型的情況下,合併用於結合兩個分支。合併時:
- git發現分支之間的共同基礎提交
- 它創建了一個新的“合併提交”,將更改結合在一起
- 此合併提交有兩個父母提交(與常規提交不同)
如何合併分支機構
- 結帳目標分支
- 確保您的分支是最新的
- 合併源分支
- 處理任何合併衝突
- 如果Git遇到衝突的變化,它將標記在受影響的文件中
- 編輯這些文件以解決衝突
- 解決後,添加文件並提交合併
創建和管理拉力請求
拉力請求是從叉子回到原始存儲庫的主要方法。
創建拉力請求
- 將您的更改推向叉子
- 導航到GitHub上的原始存儲庫
- 單擊“拉請請求”,然後單擊“新拉請求”
- 選擇基本存儲庫/分支和您的叉/分支
- 查看您的更改並創建拉動請求
- 添加標題和描述
- 解釋您所做的更改以及為什麼
合併拉的請求
如果您擁有存儲庫或寫入訪問:
- 查看拉的請求
- 檢查代碼更改
- 如果適用進行測試
- 考慮其他合作者的反饋
- 合併拉的請求
- 在github上,導航到拉請求
- 如果一切看起來不錯,請點擊“合併拉請請求”
- 對於合併隊列的存儲庫,您可以單擊“準備時合併”
最佳實踐和技巧
工作流建議
- 始終為新功能創建分支機構
- 保持主要分支清潔和穩定
- 為新開發創建功能分支
- 拉力之前
- 始終在推動自己之前進行最新更改
- 這減少了合併衝突
- 寫清晰的提交消息
- 使用描述性消息來解釋為什麼進行更改
- 遵循簡短標題的約定,如果需要的話
避免的常見陷阱
- 直接在主分支上工作
- 這可能引起衝突和混亂
- 始終為新工作創建功能分支
- 不定期更新叉子
- 如果原始存儲庫更改,則您的叉子可能會過時
- 了解如何將叉子與上游存儲庫同步
- 將大型二進製文件推到git
- Git未針對二進製文件進行優化
- 考慮大型二進製文件的git lfs(大文件存儲)
結論
在本指南中,我們介紹了Github上的克隆,分叉和合併存儲庫,這對於協作和版本控制至關重要。克隆創建本地副本,分叉允許獨立開發,並合併有效整合變化。拉請求有助於結構化貢獻。最佳實踐包括使用功能分支,保持存儲庫的更新以及編寫清晰的提交消息。通過遵循這些工作流程,開發人員可以有效協作,減少衝突並有效地管理代碼,從而確保項目開發的平穩和對開源或團隊項目的貢獻。

Nikhil是Marktechpost的實習顧問。他正在哈拉格布爾印度技術學院攻讀材料的綜合材料綜合學位。 Nikhil是AI/ML愛好者,他一直在研究生物材料和生物醫學科學等領域的應用。他在材料科學方面具有強大的背景,他正在探索新的進步並創造了貢獻的機會。