Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 使用Git/Hg存储库作为模板项目_Asp.net Mvc_Git_Mercurial_Tortoisehg - Fatal编程技术网

Asp.net mvc 使用Git/Hg存储库作为模板项目

Asp.net mvc 使用Git/Hg存储库作为模板项目,asp.net-mvc,git,mercurial,tortoisehg,Asp.net Mvc,Git,Mercurial,Tortoisehg,有没有一种方法可以实现类似于这家伙对SVN所做的事情? 我有一个基本的ASP.NETMVC项目,它本质上是一个简单的CMS站点,我将新站点建立在它之上 我不喜欢每次都要将存储库克隆到一个新站点的想法,因为这会在不同的位置创建同一存储库的多个副本,这对我来说似乎不够干净 分支机构是我问题的解决方案吗?我应该为一个新站点创建一个新分支吗?这样的话,我就可以在两种方式下都能带来变化,这是一种我非常喜欢的灵活性,支持多个项目,但仍然可以将所有东西都保存在一个回购协议下 (有时可能会在新站点中发现一个b

有没有一种方法可以实现类似于这家伙对SVN所做的事情?

我有一个基本的ASP.NETMVC项目,它本质上是一个简单的CMS站点,我将新站点建立在它之上

我不喜欢每次都要将存储库克隆到一个新站点的想法,因为这会在不同的位置创建同一存储库的多个副本,这对我来说似乎不够干净

分支机构是我问题的解决方案吗?我应该为一个新站点创建一个新分支吗?这样的话,我就可以在两种方式下都能带来变化,这是一种我非常喜欢的灵活性,支持多个项目,但仍然可以将所有东西都保存在一个回购协议下

(有时可能会在新站点中发现一个bug,在那里它将被修复,我们希望将修复带回源站点,反之亦然)


请根据Git/Hg来回答,我使用了这两个,而且我相信它们足够相似。

只需克隆存储库即可。如果要避免使用具有不同默认分支的多个克隆,请修改特定于站点的分支,该分支将是该站点的“默认分支”。然后,您还可以通过拉取和合并简单地更新“模板”代码

如果您想要一个干净的开始,而不需要(轻松)选项来应用模板中的更改,那么只需获取存储库内容的快照,并从中初始化一个新的存储库


我不喜欢将存储库克隆到新的存储库中 每次都创建一个站点,因为这会创建同一站点的多个副本 存储库位于不同的位置,看起来不够干净 我


这就是分布式版本控制系统所做的。从技术上讲,没有中央存储库。“中央存储库”只是指一个特定的克隆,参与其中的每个人或多或少都同意使用它来共享他们的更改。此外,这完全取决于DVCS用户,他们将哪些内容推送到中央存储库,以及他们只在克隆中保留哪些内容。

只需克隆存储库即可。如果要避免使用具有不同默认分支的多个克隆,请修改特定于站点的分支,该分支将是该站点的“默认分支”。然后,您还可以通过拉取和合并简单地更新“模板”代码

如果您想要一个干净的开始,而不需要(轻松)选项来应用模板中的更改,那么只需获取存储库内容的快照,并从中初始化一个新的存储库


我不喜欢将存储库克隆到新的存储库中 每次都创建一个站点,因为这会创建同一站点的多个副本 存储库位于不同的位置,看起来不够干净 我


这就是分布式版本控制系统所做的。从技术上讲,没有中央存储库。“中央存储库”只是指一个特定的克隆,参与其中的每个人或多或少都同意使用它来共享他们的更改。此外,这完全取决于DVCS用户,他们将哪些内容推送到中央存储库,以及他们只在克隆中保存哪些内容。

我认为分支并不能帮助您。从最基本的时代开始,分支用于处理同一个项目,但在不同的模式下(维护、下一版本、添加新功能等),并且从概念角度来看,为每个新项目创建新分支是错误的

如果您使用git为什么不创建模板项目,请将其保存到github,每次启动新项目时,只需在您的计算机上进行分支,然后创建新存储库并将新站点推送到它。思考是一种标准的方法


如果你想为这个目的创建一些高级的东西,我建议你创建windows installer,它会在你每次开始新项目时安装你需要的所有东西。

我认为分支并不能帮助你。从最基本的时代开始,分支用于处理同一个项目,但在不同的模式下(维护、下一版本、添加新功能等),并且从概念角度来看,为每个新项目创建新分支是错误的

如果您使用git为什么不创建模板项目,请将其保存到github,每次启动新项目时,只需在您的计算机上进行分支,然后创建新存储库并将新站点推送到它。思考是一种标准的方法


如果你想为此目的创建一些高级的东西,我建议你创建windows installer,它将在你每次开始新项目时安装你需要的所有东西。

正如@hyde所说,克隆是DVCS的工作方式,所以你不应该真的有问题

但是,如果您更感兴趣,例如,不能意外地将站点更改推回模板,那么您可以初始化一个新的存储库,然后再从模板中执行任何操作
pull
(我在这里考虑Mercurial,我想在Git中也可能有类似的操作):

此序列将创建一个新的存储库,并使用最新模板(包括所有变更集)进行更新,但由于它不是直接克隆,您将无法意外地将更改推回到模板。但是,由于初始更改集是相同的,如果您在新项目中对模板进行了有用的更改,您仍然可以通过指定目标将其推回:

$ hg push ../template
pushing to ../template
searching for changes
no changes found

以这种方式从模板创建新的存储库还意味着,虽然存储库本身没有“链接”,但很容易引入最近的模板更改。

正如@hyde所说,克隆是DVCS的工作方式,因此您不应该对此有任何问题

但是,如果您更感兴趣的是,例如,不能将站点更改意外地推回到模板,那么您可以初始化一个新的存储库,然后
$ hg push ../template
pushing to ../template
searching for changes
no changes found