博客專欄

        EEPW首頁 > 博客 > GitHub fork 合作開發 - 快速實現版

        GitHub fork 合作開發 - 快速實現版

        發布人:電子禪石 時間:2019-01-15 來源:工程師 發布文章
        GitHub fork 合作開發 - 快速實現版

        目錄一 預備條件

        回到目錄

        二 fork項目
        • 瀏覽器登陸自己的GitHub帳號,打開你要fork的項目地址,如:https://github.com/southday/devtoolstest

        • 點擊右上角 Fork,如圖:

        • fork項目后,你就可以在自己的Repositories中看到剛才fork的項目,點擊進入該項目

        回到目錄

         

        三 將項目clone到本地
        • 打開devtoolstest項目后,點擊右邊綠色框的“Clone or download”,復制項目git地址

        • 運行 Git Bash(也可以使用Git GUI),命令行進入到你要把項目clone到的位置,在該目錄下執行命令:

        • >git clone https://github.com/lcxv/devtoolstest.git

        關于命令行進入/退出/切換目錄,簡要介紹如下:
        • cd 目錄名 // 表示進入指定目錄,支持相對路徑和絕對路徑

        • cd .. // (2個點)表示退回到上一級目錄

        • cd .  // (1個點)表示進入當前目錄

        • pwd // 顯示當前所在目錄

        • ls // 展示當前目錄下的內容

        更多命令請看:Linux 命令大全
        四 push代碼到自己的倉庫
        • 進入到devtoolstest/目錄下,創建:Test.java,編寫輸出Hello world的代碼(或者在其他地方寫好,拷貝到該目錄下也行)

        • 執行命令:>git add Test.java

        • 執行命令:>git commit -m "添加 Test.java"

        • 執行命令:>git push origin master

        • 注:如果你之前沒在本地Git for windows上登陸過GitHub,那么會提示你輸入用戶名、密碼進行登陸;

        • 注:關于git add、commit、push等命令的詳細解釋及相關概念,需要自行查閱資料,可以參考:Git教程 - 廖雪峰的官方網站

        • >git lol 命令是用于查看項目提交、合并等記錄,默認沒有這個命令,是通過alias命令配置別名產生的,如果你想用該命令,需要先執行下面的命令進行別名設置:

        • >git config --global alias.lol "log --graph --decorate --pretty=oneline --all --abbrev-commit"

        • 顯示提交成功后,打開瀏覽器,看看自己的devtoolstest項目(刷新一下頁面),如我的地址是:https://github.com/lcxv/devtoolstest

        • 點擊 Test.java,就可以看到你之前提交的內容:

        回到目錄

        五 通過pull request提交代碼
        • 第4步結束,你的內容還只是提交到了你自己的repo上,并沒有提交到主repo(即你Fork的repo)

        • 把頁面切換到 “Pull requests”,然后 New pull request

        • 從 哪里(源)merge 到哪里(目的),這個根據具體情況選擇,本例中是要把之前在lcxv/devtoolstest/中的Test.java merge 到 southday/devtoolstest/中,如下:

        • 寫上 Title 和 Write,然后 Create pull reques

        • 然后對方(主repo)就會有關于你的 pull request,如下:

        • 對方覺得你寫的內容不錯,就會同意你的請求,把代碼合并到主repo中

         

        回到目錄

        六 通過本地配置upstream來同步更新主repo的內容
        • 主repo中添加了一個文件“southday-add.md”,現在我們要在本地中同步該內容

        • 先獲取主repo項目的git地址,如本例中,主repo項目git地址為:https://github.com/southday/devtoolstest.git

        • 命令行進入到本地倉庫目錄,然后執行下面的命令進行remote配置:

        • >git remote add upstream https://github.com/southday/devtoolstest.git

        • 然后執行命令:>git remote -v 檢查是否配置成功,下面出現了 upstream 以及對應的主項目git地址,說明配置成功

        • 執行命令:>git pull upstream master 來獲取主repo中添加的“southday-add.md”文件

        • 如果主repo不是添加文件,而是修改了原文件,比如修改了:"README.md" 文件

        • 那么執行命令:>git fetch upstream 來更新修改內容

        • 執行到這里,主repo的改動已經同步到了你的倉庫中了(本地 & 遠程),你可以刷新瀏覽器看看 lcxv/devtoolstest/中的內容有沒有變

        回到目錄

        七 通過主repo創建pull request來同步更新主repo的內容
        • lcxv 瀏覽器訪問自己的repo(https://github.com/lcxv/devtoolstest),然后點擊點擊 New pull request,如下:

        • 第5步相反,我們現在是要將 southday/devtoolstest/中的內容 推給 lcxv/devtoolstest/,所以需要修改推送方向,如圖:

        • 源改為:southday/devtoolstest 后,頁面會自動刷新,然后提示你:There isn’t anything to compare. 這是因為你沒還沒有修改目的倉庫,源->源,肯定沒東西可更新的,這時,點擊稍微右上角的“compare across forks”,再將目的倉庫改為:lcxv/devtoolstes

        • 接下來的操作和第5步中的類似,創建 pull request 后,可以 Merge pull request

        • 這樣,你遠程倉庫中的內容就得到了同步,接下來用自己的遠程倉庫去同步本地倉庫的內容,在本地倉庫下執行命令:

        • >git fectch origin

        • >git pull origin master

        回到目錄

        八 后記

        至此,GitHub fork 合作開發 快速實現版結束,需要注意:

        • 本例中只講了怎么操作,卻沒講為什么這樣做,所以需要自己去學習Git的相關知識

        • 參與者一般是沒有權限把代碼直接 push 到 主repo的,大家都是走 pull request流程,這樣多了一個審核步驟也比較穩妥

        參考內容:

        轉載:https://www.cnblogs.com/southday/p/10010876.html

        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞:

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 涟水县| 通海县| 凌源市| 来凤县| 伊川县| 罗甸县| 九台市| 武义县| 维西| 九龙城区| 清丰县| 麻栗坡县| 玛纳斯县| 和政县| 宽城| 萨嘎县| 深泽县| 广灵县| 奉化市| 平顺县| 孟村| 南丹县| 通化市| 札达县| 安丘市| 游戏| 来宾市| 望奎县| 工布江达县| 海原县| 隆回县| 双鸭山市| 仁怀市| 黔西| 肥乡县| 登封市| 孟津县| 武宣县| 福泉市| 蓬溪县| 炉霍县|