【问题标题】:Git mirror a repo to specific branchGit 将 repo 镜像到特定分支
【发布时间】:2016-06-25 11:10:04
【问题描述】:

我们公司尝试将一个 github 项目 fork 到我们自己的 git 服务器上,然后我们可以在上面添加我们自己的功能。我们只想签出一个特定的分支,并将所有分支和标签保持在这个分支上,然后复制(镜像?)到我们的 git 服务器。

【问题讨论】:

    标签: git merge mirror git-fork


    【解决方案1】:

    在您的服务器上创建存储库。在其他地方(不在服务器 repo 中),使用

    克隆分支

    git clone --single-branch --branch branch_name github_repo_url

    告诉 git 你的 repo 在哪里:

    git 远程添加我的 your_repo_url

    然后,将分支推送到您的仓库:

    git push -u 我的; git push --tags -u mine

    "mine" 是你的 repo 的简写名称,它可以是任何字符串,替换默认的 "origin"。

    这将收集导致 branch_name 的整个历史记录,但不会收集不是它祖先的提交。

    【讨论】:

    • 不错的答案。但这是否也抓取了特定于分支的标签?
    • 啊!我最喜欢的 git 错误:您还需要“git push --tags”才能将标签放入新报告中。
    • @stolenmoment,感谢您的出色回答。但是如何将所有回购状态镜像到我想要的分支?意思是,如果我想镜像branch-0.7,在这个提交点,会有branch-0.1,branch-0.2...(当然包括标签),我该怎么做呢?目的是我想将所有 repo 信息复制到我想要的特定提交或分支。
    【解决方案2】:
    1. 将旧分支克隆到本地
    git clone --bare git_url --single-branch --branch  old_branch_name local_dir
    
    1. 更改目录
    cd local_dir
    
    1. 添加新的遥控器
    git remote add  new_origin new_git_url 
    
    1. 推送到新遥控器
    git push new_origin  old_branch_name 
    

    【讨论】:

      【解决方案3】:

      留在您的本地原始存储库并添加新的存储库作为您的远程

      git remote add newRemote NewRepoUrl
      

      然后停留在您要推送的特定分支上。然后将代码推送到新遥控器中的新仓库

      git push newRemote current_branch_name
      

      注意:newRemote 是我放置新 repo url 的远程名称

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-27
        • 2017-06-03
        • 2014-02-16
        • 2020-09-19
        • 1970-01-01
        • 2020-04-06
        • 2015-04-15
        相关资源
        最近更新 更多