从github的一个分支叉

jan*_*jan 33 branch github git-branch git-fork

有没有办法从GitHub上的特定分支派生?...例如,moodle有很多分支(1.9,2.0 ......等等).克隆只能执行分支1.9而不是主分支吗?是否可以将特定分支克隆到我的PC上?

Mat*_*nge 23

我还不知道原生方式,但你可以按照这个方法做到:

  1. 将GitHub网站上的存储库(称为"上游")分叉到您的工作区.
  2. 运行GitHub桌面应用程序并将存储库克隆到您的PC上.
  3. 使用GitHub桌面应用程序在存储库中打开shell.(git除非您手动配置这些命令,否则这些命令不能从默认的PowerShell中获得.)
  4. 将源存储库设置为上游:

    git remote add upstream https://github.com/{user}/{source-repo}.git
    
    Run Code Online (Sandbox Code Playgroud)
  5. 获取完整的上游存储库.(现在,您只有一个主分支的副本.)

    git fetch upstream
    
    Run Code Online (Sandbox Code Playgroud)
  6. 使您的文件系统复制您想要的分支并为其指定任何名称:

    git checkout upstream/{branch-in-question}
    git checkout -b temporary
    
    Run Code Online (Sandbox Code Playgroud)
  7. 使用GitHub桌面应用程序发布您的仓库.

  8. 在GitHub网站上,打开您的存储库并单击"设置".
  9. 将"默认分支"更改为"临时".(只要改变下拉菜单,你并不需要单击"重命名"按钮.)
  10. 返回存储库,转到"分支"选项卡,现在可以删除"主"分支.
  11. 删除shell上的master分支并创建一个新的master分支:

    git branch -d master
    git branch master
    git checkout master
    git -d temporary
    
    Run Code Online (Sandbox Code Playgroud)
  12. 再一次,使用GitHub桌面应用程序发布您的仓库.

  13. 在GitHub网站上,打开您的存储库并单击"设置".
  14. 将"默认分支"更改回(新)"主"分支.
  15. 返回存储库,转到"分支"选项卡,现在可以删除"临时"分支.

这应该是你想要的.也许GitHub将来会提供一种更方便的方法(例如,点击项目分支中的"Fork"会产生这种行为).

  • 惊人的山步骤蝙蝠侠!两年后(2015年)是否有更新/更简洁的方法? (2认同)

ilt*_*mpo 8

克隆意味着您在帐户中创建整个存储库的副本,包括所有分支和标记.但是,您可以随意切换和跟踪分支.

  • 如果克隆整个存储库,那么为什么执行'git branch'命令时,它只显示主分支..而不是github上显示的所有分支? (5认同)

san*_*pim 8

无需命令行。

只需在 GitHub 中的分叉存储库中创建一个新分支 (1),GitHub 就会询问您是否希望这个新分支成为上游存储库中任何分支的克隆/镜像 (2)。您可以为新分支指定任何名称。

GitHub 新分支对话框,带有上游存储库分支选项

  • 对我来说最好的解决方案 (2认同)