GitHub无法fork同一个仓库的分叉仓库(分支仓库),通过git命令解决问题,可以正常pull requests

本文详细介绍了如何从GitHub上的A仓库分叉A2仓库的一个branch,创建为本地的新branch,并将其推送到自己fork的A1仓库中。虽然无法直接使用Fetch Upstream功能同步A2仓库的改动,但可以通过手动fetch和push操作保持本地分支与A2仓库的同步。该过程适用于开发者需要在不同仓库间协同工作的情况。
摘要由CSDN通过智能技术生成

核心思路,已有从源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 git@github.com: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值