在github中已经分叉后成为组织

时间:2012-01-26 18:44:31

标签: github fork organization

是否有可能在github中“再次分叉”?我已经分叉了一个公共存储库,但后来我成了一个组织的所有者,我想再次分叉同一个原始存储库(而不是我的分支)。但是,似乎为了选择fork作为一个组织你只能通过点击'fork'按钮来实现,因为我最初分叉它,那个按钮现在说“你的叉子”把我带到原来的fork,但不允许我选择“fork as organization。”

5 个答案:

答案 0 :(得分:19)

怎么样

  • 删除个人存储库(确保您已获得本地克隆/备份),方法是转到https://github.com/:your_login/:repo_identifier/admin,然后点击删除存储库按钮。 危险区域

enter image description here

  • 浏览上游存储库GitHub页面(https://github.com/:upstream_login/:repo_identifier)现在应该显示 Fork 按钮。

  • 点击 Fork 按钮会显示一个对话框(类似于下面的对话框),询问您是否愿意分叉到个人区域或< strong>组织区域。

    enter image description here

  • 完成此操作后,您可以向本地存储库添加指向组织区域中新分叉存储库的远程

$ git remote add your_organization git@github.com:your_organization/repo_identifier.git

<强>更新

我可能找到了一种(hackish)方式来满足您的要求

  • 确保您已登录GitHub
  • 打开新标签页并转到https://github.com/:upstream_login/:repo_identifier/fork_select
  • 这应显示一个没有CSS样式的页面,建议将上游存储库分配到组织区域。
  • 点击按钮:)

警告:这依赖于未记录的GitHub功能,此黑客可能随时停止工作。但是,一旦创建了fork,即使hack停止工作,也可以认为fork应该保留。

enter image description here

答案 1 :(得分:1)

您可以使用curl&amp; github API。下面的例子将把法拉第红宝石宝石分给&#34; your_organization&#34;组织:

 curl https://api.github.com/repos/technoweenie/faraday/forks \
 -d '{"organization": "your_organization"}'

注意:您需要更改&#34; your_organization&#34;到要分叉到的组织的实际名称。您可能还需要进行身份验证才能成功分叉。

通过github开发人员文档分发指令:

https://developer.github.com/changes/2012-11-27-forking-to-organizations/

答案 2 :(得分:1)

更新

出于某种原因,至少在我们的Github Enterprise中,URL https://api.github.yourdomain不会将请求重定向到最新的API版本。因此,以前的过程都对我不起作用。

遵循最新的documentation,现在您可以使用最新的API版本v3来做到这一点。

curl -k -u "user":"password" https://github.com/api/v3/repos/USER/REPO/forks -d '{"organization": "YOUR_ORGANIZATION"}'

我已经在bash中创建了一个小函数来简化它。

用法:git_fork_to_org <repo> <organization>

例如$ git_fork_to_org rgcr/dotfiles my_awesome_organization

git_fork_to_org(){
    repo=$1
    org=$2

    [ $# -ne 2 ] && >&2 printf "usage: git_fork_to_org <repo> <organization>\n" && return 1

    printf "github user > "
    read -n gh_user

    printf "github password > "
    read -ns gh_password

    printf "${gh_user} > forking ${repo} to ${org}\n"

    curl -k -u "${gh_user}":"${gh_password}" \
        https://github.com/api/v3/repos/${repo}/forks \
        -d "{\"organization\": \"${org}\"}"
}

答案 3 :(得分:0)

一种方法是使用名为“ hub”的github命令行工具。

Usage: "hub fork [--no-remote] [--org=<ORGANIZATION>]"

答案 4 :(得分:0)

此页面位于

https://github.com/:upstream_login/:repo_identifier/fork

它表示您已经对存储库进行了分叉,并允许“再次分叉到其他账户”,其中显示了您的组织。