将我的git存储库置于我需要的Visual Studio项目状态的最不痛苦的方法是什么?
在Visual Studio术语中,我们从一个网站项目开始。该网站的当前生产版本主要是该网站项目的(旧)分支,除了对生产进行的一些关键修复。
我们引入了一些承包商为网站添加新功能,他们接受了我们的代码并将其导入(新)Web应用程序项目,然后他们更新了文件并向我们发送了拉取请求。因为文件路径是如此不同而且其他一些变化相当痛苦,我将Web站点项目的dev分支转换为Web应用程序项目,重新定位文件以匹配新路径,然后合并它们的更改,手动修复所有他们的新 Web应用程序项目与我们的转换的 Web应用程序项目之间的合并冲突(如果您从未在Visual Studio项目的XML配置中手动修复合并冲突文件,认为自己很幸运。)
因此,如果你想象我们的git repo,现在有两个分支问题:dev,它已成为一个Web应用程序项目,而prod,它仍然是一个Web站点项目,并且略微由于......原因与实际生产站点不同步。
客户尚未批准开发中的更改,并且不太可能很快批准它们;但是,它们确实需要对生产进行重大更改(与以前的修补程序更改不同),其范围足够大,需要通过完整的dev / qa /审批流程。
此时,将整个站点作为Web应用程序项目具有优势(当站点作为Web站点项目创建并首先检入git时,这些优点并不相关)。什么是我对git的最佳攻击计划,它不会导致Visual Studio中的项目损坏,但会让我进入 new 或还原 dev分支既是Web应用程序项目又与实际生产状态一致?
我知道它可能会涉及至少一个新的分支来处理生产代码和开发分支的Web应用程序项目结构之间的合并,但我不知道从哪里开始。我检查开发顶部的开发?刺激开发者的顶部?一个新的空分支,我按照某种顺序检查它们?
答案 0 :(得分:1)
我对Visual Studio不是很熟悉,但我认为您应该将项目从生产分支转换为Web应用程序项目,并使dev分支中的文件路径和生产分支中的文件路径尽可能相似,然后合并它们。 / p>
答案 1 :(得分:0)
Visual Studio使用Git。不是某种VS-only Git。
我的建议是创建一个新分支,我称之为web-app-feature
。
所以git checkout dev
,git branch web-app-feature
。现在,您有一个新分支指向与dev
相同的提交。现在我们需要将dev
移动到master
,这在Git中非常简单。执行git reset --hard master
,指示当前HEAD
(dev
,因为这是我们上次结帐),将相同的提交指向master
。
现在你的回购看起来有点像
*-*-*-*-*<- master, dev
|
*-*-*-*-*-*<-web-app-feature