met*_*bed 10 git github bitbucket git-fork
如果我理解分叉,它在概念上涉及以下步骤:
这是它的样子:
Original <??upstream??? Forked
(server) (server)
?
?origin
?
(local)
Run Code Online (Sandbox Code Playgroud)
与克隆的主要区别在于这些步骤是服务器端,而不是本地步骤.如何在git命令行上手动复制?
这是我到目前为止所做的:
在这个阶段,我在本地仓库上设置了所有东西.我可以使用中间本地克隆同步原始和分叉存储库之间的更改.所以这就是我所拥有的:
Original Forked
(server) (server)
? ?
? ?origin
? ?
????????upstream??? (local)
Run Code Online (Sandbox Code Playgroud)
现在我如何将此链接推送到服务器,即将原始repo作为服务器端 forked repo 的上游远程,以匹配第一个图?
请注意,这个问题不是特定于GitHub的 - 我可能也想用BitBucket来做这个.理想情况下,我也应该可以跨站点执行此操作.我在这里已经阅读了很多类似的问题,但是没有明确的答案.
您可以在命令行上使用API在Bitbucket上派生项目,但您至少需要对源项目的读取权限.
语法是:
curl -v --user {username}:"{password}" \
https://bitbucket.org/api/1.0/repositories/{accountname}/{repo_slug}/fork \
--data "name=mynewrepo"
Run Code Online (Sandbox Code Playgroud)
例如
要使用名称将项目projectABC从帐户分支ABC到您的帐户,请使用以下命令XYZProjectXYZ
curl -v --user XYZ:"XYZPASSWORDXYZ" \
https://bitbucket.org/api/1.0/repositories/ABC/ProjectABC/fork \
--data "name=ProjectXYZ"
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Bitbucket文档.
现在在本地计算机上克隆此项目,
git clone your_target_git_repository_path
Run Code Online (Sandbox Code Playgroud)转到项目目录并添加upstream指向源存储库的远程,
git remote add upstream source_git_repository_path
Run Code Online (Sandbox Code Playgroud)现在,在任何时候从源存储库(例如从主分支)中提取更改,使用:
git pull upstream master
Run Code Online (Sandbox Code Playgroud)
要将本地提交推送到服务器上的目标存储库,请使用:git push origin master
当您对目标存储库的更改准备好与源存储库合并时,可以从Bitbucket网站或使用Bitbucket API创建Pull请求:Pull Request
对于 GitHub,显然您现在可以使用hubCLI命令执行此操作hub fork。我没有使用过它,但根据文档,您似乎会这样做:
git clone git@github.com:some_user_or_organization/some_project.git
cd some_project
hub fork
Run Code Online (Sandbox Code Playgroud)
...你最终会得到两个遥控器:origin指向上游,一个与你的 GitHub 用户名同名,指向你的新分支。(如果hub还将远程名称分别切换为“上游”和“原点”就好了,但我认为不会。)
创建存储库的本地副本 - 指向最终分叉存储库的步骤如您所详述。
下一步是创建分叉存储库。Github API可以使用-not从命令行完成git;有关更多信息,请参阅/sf/answers/169794271/ 。
之后就可以直接git push origin master完成手动分叉了。
注意:Bitbucket 也提供了 REST API,允许从命令行创建分叉存储库。
| 归档时间: |
|
| 查看次数: |
12613 次 |
| 最近记录: |