github如何實現fork的專案與原專案同步

2021-09-10 14:12:42 字數 1468 閱讀 7202

refer to

兩種方式最重要的區別是,如果我們修改了clone到本地的**,想push一下,顯然第一種方式不可行,因為專案的遠端資訊是別人的(通過git remote -v 可以檢視),而第二種方式,由於建立者相當於是我們自己,是能夠push的(當然先要add 和commit)。但是我們push之後,原專案的主人是看不到我們修改的**的,如果想讓原作者接受並merge你的修改,這時可以發起pull request,這樣原作者就能收到pull request請求,並可以審閱你的**是否合理,如果他比較滿意,就可以merge你的修改,這樣原專案就得到了完善,而你也就成為了光榮的「貢獻者」之一。

一般情況我們是不需要fork的。很多人錯誤的在使用fork,把它當成一種「收藏」功能,這其實並沒有什麼必要。一來,可以直接用「watching」來關注該專案,當有新的issue,commit,pull request時,你會收到相應的郵件提醒(前提是設定了郵箱)。二來fork的專案只是保留了fork當時的狀態,如果專案作者在你fork之後更新了專案,你是看不到的。這就帶來乙個問題:如何實現fork後的專案與原專案的同步?這是我今天參與乙個專案的時候才意識到的,以前沒有思考過這個問題(諸位莫要見怪)。查閱了一些資料,找到了乙個比較簡單可行的答案。方法如下:

在我的主頁上有乙個專案「zhihu-api」,可以看到,它是從「lzjub567/zhihu-api」fork來的。

我的 zhihu-api

1. 將自己主頁的專案clone到本地,如下圖:

clone 專案zhih-api

此時,若我們檢視專案的遠端資訊,發現結果都是關於我自己主頁的,origin是分支名稱:

檢視專案遠端資訊

2. 為專案新增遠端分支:

新增遠端分支

檢視remote 資訊

3. 如果遠端專案進行了更新,我們需要從upstream分支進行拉取,這樣本地的**就和原作者的**同步了。

拉取遠端專案資訊

4. 將本地**提交到自己主頁的分支,即origin上了,這樣,我自己主頁的專案就和原作者的專案進行了同步。

push到自己的分支

總結一下:實現fork的專案和原專案同步的方法是利用本地的專案作為「中轉」,為本地的專案新增兩個遠端資訊,拉取原倉庫的新**,push到自己的倉庫上,就達到了「同步」。

實現這個目的的做法不止這一種,只是我剛好看到了,覺得比較簡單,就記錄到這裡備忘。

如何fork自己的github庫?

github上我們經常fork其他人的 然後經過一通魔改後弄出 自己 的東西。但是現在我遇到了這麼乙個需求,就是我已經公開了乙個自己的庫 暫且叫parent 然後我想基於自己開發的庫再建立新的功能,但是又不想讓新功能公開,乙個很自然的想法是庫parent保持公開,然後新建立一條分支隱藏,可惜的是gi...

github如何實現fork的專案與原專案同步

refer to 兩種方式最重要的區別是,如果我們修改了clone到本地的 想push一下,顯然第一種方式不可行,因為專案的遠端資訊是別人的 通過git remote v 可以檢視 而第二種方式,由於建立者相當於是我們自己,是能夠push的 當然先要add 和commit 但是我們push之後,原專...

在Github和Git上如何Fork?

剛接觸git和github時,最困擾的一件事情就是嘗試解決下面的問題 在git和github上,我能做什麼?現在有這樣一種情形 有乙個叫做joe的程式猿寫了乙個遊戲程式,而你可能要去改進它。並且joe將他的 放在了github倉庫上。下面是你要做的事情 fork他的倉庫 這是github操作,這個操...