2013-02-15 85 views
12

我创建了一个Laravel“样板”项目,其中包含我常用的功能/库。从现有的“样板”回购项目创建新项目

使用这个样板作为新项目的基础的正确git过程是什么?我可以想到两个选择:

  1. boilerplatenewproject并开始。我没有任何意图将newproject更改回boilerplate
  2. 克隆boilerplate并将远程原点更新为新的清理回购。

我倾向于第二种选择,因为它感觉就像是一个很好的清晰的代码样板。我会因为这样做而失去任何很酷的git可能性吗?

回答

12

考虑,你会从模板一个被存储在Github上项目列入boilerplate GitHub的项目,我想:

  • 创建GitHub上一个新的空回购(有boilerplate没有链接,没有need for a fork
  • 克隆它
  • 克隆boilerplate在磁盘上的一个单独的位置
  • 复制从本地合适的模板克隆到您新的本地克隆Github回购
  • git addgit commit)将该特定模板推回到您的新Github回购。
  • 从那里开始
+13

另一个选择是克隆'boilerplate',删除'.git',然后'git init','git add .' ,'git commit' – aragaer 2013-02-15 08:43:16

+0

@aragaer不要忘记''样板'可能包含许多模板供您选择(这可能不是这种情况),再加上您需要重置远程'origin'url。我会认为我的方式更容易。 – VonC 2013-02-15 08:44:47

+0

删除'.git'会重置所有的git。但我同意有几个模板。 – aragaer 2013-02-15 09:19:37

3

“叉”不是Git的概念。 Git与Github混淆了吗?如果你的意思是在Github上分发项目,那么就像克隆repo一样,克隆听起来就像你正在寻找的东西。你永远不会把变化推回到“样板”回购。但是,您可以使用合并或重新绑定来将更新置入样板回购项目中,然后将其分离出来。如果没有这样的东西是可取的,那为什么要用Git呢?只需制作一个目录的递归副本,并从那里开始。

+0

这需要您手动设置上游 - 以免您将更改推送到您的样板库! https://help.github.com/articles/changing-a-remote-s-url/ – 2016-12-29 08:02:53

3

没有错@ VonC的答复工作,但您也可以使用hub创建a one-liner,有效地inits一个新的回购协议(本地和远程)的基础上你的种子回购:

clonefork() { 
    hub clone "$1" 
    cd "${1##*/}" 
    hub fork 
} 

在你的shell:

$ clonefork user/seed-repo 

通过 “cloneforking” 你的种子回购,你也可以得到a network graph显示所有回购产生的回报。