作者:廊坊0316慢摇酒吧_196 | 来源:互联网 | 2023-05-28 16:19
如果我理解分叉,它在概念上涉及以下步骤:
镜像克隆源repo到目标repo
在目标仓库上设置"上游"远程,指向源仓库
其他一些东西,比如电子邮件订阅等(对这个问题不重要)
这是它的样子:
Original ?upstream??? Forked
(server) (server)
?
?origin
?
(local)
与克隆的主要区别在于这些步骤是服务器端,而不是本地步骤.如何在git命令行上手动复制?
这是我到目前为止所做的:
将源代码库克隆到本地仓库
将"origin"遥控器更改为指向目标目标仓库
添加指向源仓库的"上游"远程
在这个阶段,我在本地仓库上设置了所有东西.我可以使用中间本地克隆同步原始和分叉存储库之间的更改.所以这就是我所拥有的:
Original Forked
(server) (server)
? ?
? ?origin
? ?
????????upstream??? (local)
现在我如何将此链接推送到服务器,即将原始repo作为服务器端 forked repo 的上游远程,以匹配第一个图?
请注意,这个问题不是特定于GitHub的 - 我可能也想用BitBucket来做这个.理想情况下,我也应该可以跨站点执行此操作.我在这里已经阅读了很多类似的问题,但是没有明确的答案.
1> 小智..:
您可以在命令行上使用API在Bitbucket上派生项目,但您至少需要对源项目的读取权限.
语法是:
curl -v --user {username}:"{password}" \
https://bitbucket.org/api/1.0/repositories/{accountname}/{repo_slug}/fork \
--data "name=mynewrepo"
例如
要使用名称将项目projectABC
从帐户分支ABC
到您的帐户,请使用以下命令XYZ
ProjectXYZ
curl -v --user XYZ:"XYZPASSWORDXYZ" \
https://bitbucket.org/api/1.0/repositories/ABC/ProjectABC/fork \
--data "name=ProjectXYZ"
有关详细信息,请参阅Bitbucket文档.
现在在本地计算机上克隆此项目,
git clone your_target_git_repository_path
转到项目目录并添加upstream
指向源存储库的远程,
git remote add upstream source_git_repository_path
现在,在任何时候从源存储库(例如从主分支)中提取更改,使用:
git pull upstream master
要将本地提交推送到服务器上的目标存储库,请使用:git push origin master
当您对目标存储库的更改准备好与源存储库合并时,可以从Bitbucket网站或使用Bitbucket API创建Pull请求:Pull Request