将项目基于"种子"回购的适当git工作流程是什么?

z5h*_*z5h 18 git github

举个例子:假设你有一个像Angular Seed这样的个人项目(这是一个Angular项目的起点https://github.com/angular/angular-seed).

现在您想将其用作项目的起点(比如在线相册).

您不应该只创建一个分支,因为您没有对种子项目进行变更.但如果它是你自己的回购,github将不会让你分叉.

那么创建一个仍然可以从原始种子项目中获取更改的克隆的工作流程是什么?我以为这是一个分叉.

z5h*_*z5h 27

我刚刚找到了这个答案/sf/answers/286757061/以及评论(git工作流程 - 使用一个repo作为另一个的基础),它们共同引导我找到我喜欢的解决方案.

git clone -o boilerplate ssh://git@github.com/user/proj.git new_proj
-o样板重命名boilerplate仍可用于从中提取更改的原点.

创建新的空github new_proj repo.然后
git remote add origin ssh://git@github.com/user/new_proj.git

  • 这就是我要做的......尽管以正常方式克隆很容易,然后重命名远程原点.所以,首先你要"git clone https://github.com/xxx/seed.git"然后"git remote rename origin seed".稍后我可以"git remote add"一个新的来源(例如github.com上的指令),以启用默认推送到我自己的仓库.这样我总是可以从'上游'下拉(这是推荐的,例如这里.https://github.com/firebase/angularFire-seed/tree/master) (2认同)

Kyl*_*oon 5

我认为正确的答案是使用 Yeoman Generators 之类的东西。( http://yeoman.io/ ) 您希望将 git 存储库与种子项目一起用作生成器。但它不允许您不断地从种子项目中引入更改。

使用两个遥控器的解决方案是有效的,但最终项目将有足够的分歧,这将使这些项目保持同步变得非常困难。