轉自:https://blog.csdn.net/matrix_google/article/details/80676034
問題場景:
新公司要求所有的代碼提交都要先通過自己的庫提交到主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分支
這個是公司文檔上寫的,並不是從網上找來的
為了說清楚這個問題,親自做了一張圖
————————————————
版權聲明:本文為CSDN博主「千淘萬漉」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/matrix_google/article/details/80676034