1. 程式人生 > 其它 >GitHub無法fork同一個倉庫的分叉倉庫,通過git命令解決問題,可以正常pull requests

GitHub無法fork同一個倉庫的分叉倉庫,通過git命令解決問題,可以正常pull requests

核心思路,已有從源GitHub A倉庫fork過來的A1倉庫,clone A1倉庫到本地,將另一個A倉庫的分叉 A2倉庫 的一個branch作為一個新建branch建立在本地,最後將其push到遠端A1倉庫中即可。

在GitHub上這個branch可以正常開pull requests到A2倉庫或其他A倉庫的分叉倉庫,但Fetch upstream這個便利的功能就只能用於同步來自A倉庫的branch,而來自於A2倉庫的branch則不能享受這項便利的功能,得手動在本地fetch pull push。

clone A1倉庫到本地

推薦使用遠端倉庫的ssh地址clone到本地。

git clone [email protected]:XXX/A1.git

如果已經clone過了,就與遠端倉庫同步一下保證後續步驟不會出錯。

git fetch

git pull

新增remote A2遠端倉庫地址

檢視當前remote遠端倉庫地址有哪些。

git remote -v

新增A2遠端倉庫地址,遠端倉庫別名可自定義,新增以後可以再用上面的命令確認一下。

git remote add <遠端倉庫別名> <倉庫地址>|git remote add <remote> <url>

獲取A2遠端倉庫的分支

git fetch <遠端倉庫別名> <分支>|git fetch <remote> <branch>

可以檢視一下是否獲取到遠端倉庫的分支。

git branch -a

從A2遠端倉庫的分支新建一個本地分支

git checkout -b <新分支名> --no-track <遠端倉庫別名>/<分支>

git checkout -b <branch> --no-track <remote>/<branch>

此時本地將新建並切換到這個分支,可以檢視一下本地分支。

git branch -a

推送到A1遠端倉庫

origin遠端倉庫即我們自己的A1倉庫,將本地分支推送到這裡面去即可。

git push --set-upstream origin <分支>

| git push --set-upstream origin <branch>

手動更新分支與A2倉庫同步

git pull <遠端倉庫別名> <遠端分支>:<本地分支>

git pull <remote> <branch>:<branch>

再推送到A1遠端倉庫。

git push