如何fork自己的github庫?

2022-03-30 01:43:17 字數 1776 閱讀 3284

github上我們經常fork其他人的**,然後經過一通魔改後弄出"自己"的東西。但是現在我遇到了這麼乙個需求,就是我已經公開了乙個自己的庫(暫且叫parent),然後我想基於自己開發的庫再建立新的功能,但是又不想讓新功能公開,乙個很自然的想法是庫parent保持公開,然後新建立一條分支隱藏,可惜的是github並不支援這個功能。所以乙個可行的辦法就是fork自己的庫,但是不是直接fork,因為你也沒法fork自己的庫,間接實現的方法如下:

$ git clone
注意,乙個比較重要的概念是github的分支分為本地端和遠端,我們先看一下兩端的分支情況

*master
origin   (fetch)

origin (push)

cd child

git remote add upstream

上面**的意思是給child庫的遠端加上乙個名字為upstream的分支,該分支路徑則是你想要fork的庫的路徑。

我們可以輸入git remote -v檢視現在遠端分支的情況

origin    (fetch)

origin (push)

upstream (fetch)

upstream (push)

第2步只是遠端分支進行了fork,真正要使用**,我們還需要把upstream遠端分支同步到本地,方法如下:

git pull upstream master
如果你遇到了fatal: refusing to merge unrelated histories報錯資訊,可以加上--allow-unrelated-histories,即

git pull upstream master --allow-unrelated-histories
這樣遠端parent**就同步到裡新建立的child庫了。如果你想要和parent保持一致,可以通過上面的pull方法實現,也可以通過fetch+merge的方式。

簡單解釋就是:

這裡的遠端分為被轉殖的parent(即upstream)和child(即origin)。

git push origin master
git push upstream master
當然,如果你不想child影響到parent,你可以在parentsettings/branches裡設定branch protection rules,勾選require pull request reviews before merging。這樣即使你不小心執行了上面的命令也不會將**同步到upstream

如有意合作,歡迎私戳

2019-12-19 15:01:40

GitHub更新自己Fork的專案

github的fork可以將別人的工程複製到自己賬號下。這個功能很方便,但其有乙個缺點是 當源專案更新後,你fork的分支並不會一起更新,需要自己手動去更新。以github使用者 micmiu 賬號名 fork 專案 sql parser 為例子 1 clone 自己賬號裡fork的分支 git c...

github同步fork別人的專案到自己的倉庫

github參考說明,英文好的直接看英文吧 當我們fork乙個專案後,在我們使用 的時候就會以我們本地為準,不會跟隨我們fork前的專案,如果需要同步對方的 需要進行同步操作 ipandadembp cms ipanda git remote v origin fetch origin push i...

在Github和Git上如何Fork?

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