将Git子目录合并到分支中以使其成为主分支根目录

4

我有一个分支,它的内容是主分支的子目录。现在我对这个子目录进行了一些更改。理想情况下,我希望能够将这些更改合并回主分支。

分支布局:

index.html
subdirectory
  > a.txt
  > b.txt

主要布局
a.txt
b.txt

我该如何做到这一点?这是一个好方法吗?在SVN中,我避免将子目录合并回主干。但这是一个有些不同的用例,分支和主干的布局永远不会改变。


你的分支最初是如何进入那种状态的?你的特性分支的根应该始终是主分支的根。 - Jimmy
我知道。我需要这个结构来为我的Github项目页面服务。主分支反映了一个小型Web应用程序的当前开发分支。Github支持提供html页面(和css等...),如果它们存在于名为gh-pages的分支中。index.html是欢迎页面,您可以在其中找到有关项目的一般信息,而子目录包含iPhone Web应用程序。 - oschrenk
@Jimmy:仅供参考,OP oschrenk刚回答了你关于“你的分支最初是如何进入那种状态的”这个问题。 - VonC
如果你的评论没有以@Jimmy开头,他就不会注意到你的回答(除非他重新访问了这个问题)。 - VonC
@VonC 感谢您的提醒(以及通知Jimmy Cuadra)。第一次遇到这种情况。 - oschrenk
2个回答

1
您可以尝试以下步骤:
  • 从当前分支创建一个新的分支(git branch to_be_merge_to_master
  • 将文件移回正确的结构中(git mv ...
  • 将第二个分支合并到主分支

@VonC 虽然这是一个解决方案,但如果您可以直接合并给定分支的子目录,那将很酷。我与该问题的作者有相同的需求,这与gh-pages的工作方式有关。 - alex
@alex,接下来我们讲一下 https://gist.github.com/833223 中的方法(可以把“gh-pages”分支和“master”分支设置在父级项目文件夹“grandmaster”的子文件夹中),这个方法最初是在 https://dev59.com/Gm445IYBdhLWcg3wq8FY#4993758 中介绍的,你可能会感兴趣。 - VonC

1

使用 Git 子模块


从长远来看,这似乎是正确的方式。在Github项目页面的情况下,我需要一个单独的项目来显示应用程序。也许我可以将它们移动到我的用户页面上。 - oschrenk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接