Github中進行fork後,原倉庫更新瞭如何與原倉庫同步

我們經常在Github中Fork別人優秀的項目(在自己的GitHub下面生成一個repository),如果原倉庫作者或組織更新倉庫,此時你Fork的項目並不會更新,如果我們想要更新操作,該如何操作?在Gitee上面操作比較便捷,有一個pull按鈕。

這裏有兩種方式:
  1. 在GitHub上面直接發起pull request;
  2. 在本地倉庫使用命令行操作;

下面就這兩種方式進行介紹:

方式一:在GitHub上面直接發起pull request

這個方式適合新手,對git命令和原理不是很清楚的。按照下面的步驟進行操作,就拿spring-boot項目的Fork爲例!

  1. 打開fork 過來的項目如下所示:
    在這裏插入圖片描述

  2. 點擊new pull request
    在這裏插入圖片描述

  3. 在進入的界面, 後進行將左邊的設置爲你自己的倉庫, fork 過來的源在右邊.
    在這裏插入圖片描述

  4. 當選擇完後會變成下圖:
    在這裏插入圖片描述

  5. 接下來, 將其展示出可以調整狀態: 右邊改爲源fork地址
    在這裏插入圖片描述

  6. 就會出現變更數據:
    在這裏插入圖片描述

  7. 點擊create pull request
    在這裏插入圖片描述

  8. 進行數據的合併:
    在這裏插入圖片描述

  9. 最後合併:
    在這裏插入圖片描述
    到此就完成了:
    在這裏插入圖片描述
    在這裏插入圖片描述

方式二:在本地倉庫使用命令行操作;

  該方式應該是使用的比較多的方法,因爲在本地一般都會有一個倉庫的。
參考文檔:
問題場景:

新公司要求所有的代碼提交都要先通過自己的庫提交到主repo上去,所以先在gitlab網頁上fork出一個自己的庫,在本地修改完代碼後提交到遠程自己庫上,然後在gitlab網頁上發起一個merge request請求,然後等待主repo主人review,同意之後合入。

問題是同時也有其他同學在主repo合入代碼,所以我要定期和主repo保持同步。

開始我的想法是

gitlab網頁上提供了git pull這樣的按鈕,這樣點一下就能讓自己fork的庫和原始庫保持同步。然後自己在本地git pull,就能間接和原始的庫保持同步。

但是我沒找到這個按鈕。但是我找到了下面這篇文章,照着操作之後,一步一步跟蹤觀察發現,每一步都能成功。

整體思路如下:

在自己的本地添加主repo爲上游代碼庫,注意只是配置原倉庫的路徑,並沒有真正clone原倉庫,

然後將遠程主repo同步到自己本地的機器,

然後本地的機器再push到自己的遠程的fork庫

所有的操作都要在本地命令行完成

下面是我轉載的,照着這個操作,完全沒問題:
我們在進行Github協同開發的時候,往往會去fork一個倉庫到自己的Github中,過一段時間以後,原倉庫可能會有各種提交以及修改,很可惜,Github本身並沒有自動進行同步的機制,這個需要我們手動去執行,現在我來演示一下如何進行自己的倉庫和原倉庫進行Gith同步的操作。

(1)我使用終端 命令行的方式在Mac中來操作。首先在終端中配置原倉庫的位置。進入項目目錄,執行如下命令:查看你的遠程倉庫的路徑。

(2)配置原倉庫的路徑:

下面這步操作即添加主repo爲上游代碼庫

注意一定要cd到你自己fork出來的庫裏面去,比如工程名叫luoluo,那要先cd到luoluo中去,然後才能操作

(3)再次查看遠程目錄的位置:

(4)抓取原倉庫的修改文件:

執行效果如下所示

(5)切換到master分支。

(6)合併遠程的master分支:

下面這行代碼執行結束之後,本地代碼會立刻和主庫保持同步,非常神奇

(7)此時,你的本地庫已經和原倉庫已經完全同步了。但是注意,此時只是你電腦上的本地庫和遠程的github原倉庫同步了,你自己的github倉庫還沒有同步,此時需要使用“git push”命令把你本地的倉庫提交到github中。

這是華麗的分割線

其實(4)(5)(6)可以合併成一條命令

git pull upstream master

第一個參數pustream 表示遠程主repo

第二個參數master 表示自己fork庫的master分支

這個是公司文檔上寫的,並不是從網上找來的

爲了說清楚這個問題,親自做了一張圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章