0

我有一个我编写的框架,它作为主分支进入Github存储库。进入那个分支的只有框架的核心文件,所以我把它命名为核心分支。现在进入其他分支,我列出了使用上述核心框架的项目——我这样做是因为我虽然使用分支会更容易,但正如我刚刚发现的那样,事实并非如此。严重地。

所以总结一下:我有一个核心分支和一个使用该核心的项目分支。现在在项目分支上,我主要进行与项目相关的提交(添加图像 X,修改样式表 Y),但有时我会修改核心,以使其更好。

现在我想做的是,我再次认为这很简单,就是当我开始在核心而不是项目上工作时,将对核心的更改合并到核心分支中。有几种解决方案,这一切都开始让我感到困惑,既然我不想弄乱我的核心分支,我应该如何进行?

我知道我可以挑选提交并推送它,但我真的很想保留核心文件的更改历史,所以我被指示重新定位。问题是:如果我将我的核心分支重新设置为项目分支上的特定提交,它将推送所有与核心无关的文件和内容。那么我如何某个提交中变基(而不是这似乎是默认的?)。

以下是项目分支上的提交可能是什么样子的某种想法:

项目分支

00:12 - Added image X
00:14 - Modified stylesheet Y to have a pink background (pink is pretty)
00:16 - Modified class core.background to handle pink background
00:18 - Modified class core.string to always capitalize Pink (because it's so pretty)

如何在不合并与项目相关的两个第一个提交的情况下将最后两个提交合并到核心分支中,并保留历史记录 - 即。将这两个核心更改保持为两个提交而不是一个?


编辑:更精确。我的核心框架定义了项目的文件夹组织,因此需要位于项目文件夹的根目录。这就是为什么它不是一个子模块,这本来就是梦想。另外,我尝试了核心的分叉,但显然你不能分叉自己的项目。

如果除了分支之外还有其他方法可以做我想做的事,我会全神贯注。

4

1 回答 1

1

git分支并不是那样工作的——分支都与存储库有关。将项目或项目的一部分分离到单独的分支中并不是正确的方法。最终,大多数分支应该被合并到release某种类型的分支中,或者被丢弃。

我有一个核心分支和一个使用该核心的项目分支。现在在项目分支上,我主要做与项目相关的提交......

我真的很想保留核心文件的更改历史[单独]

由此看来,我认为这听起来很像您对两个独立的存储库有一个很好的用例,一个用于core-files,一个用于project- 您希望保留历史记录core并将其project分开。与其将它们保存在不同分支的同一个存储库中,我建议将它们拉core-files入一个git submodule. projects这会给你带来几个好处:

  • projectcore历史是分开的。
  • 与另一个项目一起使用core非常简单;导入core为. git submodule_otherproject
  • project两者的历史都core更容易维护,因为您不再需要在分支之间进行挑选。
于 2012-05-21T23:42:14.553 回答