代码之家  ›  专栏  ›  技术社区  ›  planetp

如何在首次提交后在Git仓库中创建“主”分支?

  •  0
  • planetp  · 技术社区  · 4 年前

    我在 空的 Git仓库并将其推送到Github。现在我无法从中创建PR,因为它被认为是一个“默认”分支,而且没有 master 支。如何更新repo,以便:

    • 有一个 主人 分支(例如,指向一个提交,添加一个空 README 文件)
    • 我的更改有一个功能分支,可用于创建PR?

    任何帮助都将不胜感激。

    0 回复  |  直到 4 年前
        1
  •  4
  •   Enrico Campidoglio    4 年前

    根据您的问题,您的存储库现在看起来像这样:

    o
    ^
    feature
    

    你想让它看起来像这样:

    o-------o
    ^       ^
    master  feature
    

    同时也制作 master 新的 default branch on GitHub ,而不是 feature .

    一种方法是在 特征 分支,将其移动到历史的起点,并创建一个新的 主人 指向它的分支。

    以下是步骤:

    git checkout feature
    git commit --allow-empty -m "Initial commit" (you can create the README file here, instead)
    git rebase -i --root
    
    # The TODO file will look something like this:
    
    pick 1234abc Adds the feature
    pick 5678edg Initial commit
    
    # Move the "Initial commit" line to the top of the file
    
    pick 5678edg Initial commit
    pick 1234abc Adds the feature
    
    # Then save and close
    

    此时,您的历史将如下所示:

    o-------o
            ^
            feature
    

    现在,创建 主人 指向提交的分支 之前 引用的那个 特征 :

    git checkout -b master feature^
    

    此时,你所要做的就是推动 主人 通过以下方式访问GitHub:

    git push -u origin master
    

    最后,您必须转到GitHub上的存储库设置以进行 主人 新的默认分支。请参阅GitHub的文档 how to do that .

        2
  •  0
  •   Greg Burghardt    4 年前

    如果你的存储库只有一个功能分支,并且该分支只有一个提交,而GitHub中的存储库没有提交,只需将你的功能分支重命名为master并推送即可。不需要拉取请求。

    一切都必须从某个地方开始。首次提交到新存储库不需要拉取请求。拉取请求需要两个分支,以便您可以查看引入的更改。由于这是一个新的存储库,因此没有新的更改。