Dog*_*her 152 git branch github
我有主人和新项目分支机构.现在我想基于新项目分支与其主人创建一个全新的回购.
背景:我有一个包含三个独立应用程序的存储库.它没有这样开始.回购中最初只有一个应用程序.但是,随着时间的推移,业务需求已发生变化 一个应用程序成为两个(遗留版本和重写.)添加了一个Web服务.使用单独的分支来包含这三个项目.但是,他们不共享任何代码.因此将它们拆分成自己的回购更简单.
Dog*_*her 266
我从@ user292677的想法入手,并对其进行了改进以解决我的问题:
$ git push https://github.com/accountname/new-repo.git +new-project:master 新的Github回购已经完成.结果是;
master对应于老回购的新项目,以事实上,我发现通过使用这种方法,我可以使用精选的分支创建新的仓库,并按我的意愿重命名:
$ git push git@github.com:accountname/new_repo +new-project:master +site3a:rails3
结果是预先存在的site3a分支现在也被移动到新的repo并将显示为rails3.这个作品真的很好:网络图显示了新的主人和Rails3中有充分的历史和对于彼此的正确关系.
更新2013-12-07:将此用于另一个项目,并验证此配方仍然有效.
更新2018-01-11:更新了步骤3.对https协议使用GitHub建议.食谱仍然有效.
Ale*_*sin 22
更新:
cd到包含old_branch的本地repo和:
$ git push https://github.com/accountname/new_repo.git +old_branch:master
Run Code Online (Sandbox Code Playgroud)
git clone -b new-project /path/to/repo /new/repo/path
Run Code Online (Sandbox Code Playgroud)
编辑:在GitHub中,您可以"分叉"回购,然后转到克隆中的"管理"选项卡."存储库名称"和"可见性"下方是"默认分支",带有分支下拉菜单.选择new-project.
重新编辑:我刚刚意识到它是master你想要设置的分支,而不仅仅是"默认"分支.所以…
them/repo到you/repo. git clone git@github.com:you/repo.git gitk. old-master分支,这样您就不会忘记旧的提交.] new-project分支上查找最近的提交,右键单击提交消息,然后选择"将主分支重置为此处".(您也可以在命令行中使用git-reset,但我还没有想出正确的调用.)您需要使用该--force选项完成下一次推送到GitHub仓库的操作,否则您就完成了.
如果这是你自己的一个回购你正在这样做......
git clone git@github.com:you/orig.git git clone orig copy copy仓库中,将master分支重置到您想要的位置. you/copy.按照GitHub上的说明将该项目设置为本地版本的遥控器copy,推送master,您就完成了!这就是全部。(注意:git历史保留)
我已经尝试了上面的答案,但发现它不够具体,因为它没有指定 +master:master 这是我需要让它工作的东西。它工作得很好。
来源(经过我的修改以避免 github 的 ssh 问题):Mauricio Aiello,前 Java 高级开发人员,https ://www.quora.com/How-do-I-create-a-new-GitHub-repository-from-a - 现有存储库中的分支