繁体   English   中英

如何在不破坏 Visual Studio 的情况下恢复项目的 Git 存储库?

[英]How can I revert my project's Git repo without breaking Visual Studio?

让我的 git 存储库进入我的 Visual Studio 项目需要它的状态的最不痛苦的方法是什么?

在 Visual Studio 中,我们从一个网站项目开始。 该站点的当前生产版本主要是该网站项目的(旧)分支,除了一些已对生产进行的关键修复。

我们引入了一些承包商来向站点添加新功能,他们将我们的代码导入到(新的)Web 应用程序项目中,然后他们更新文件并向我们发送拉取请求。 因为文件路径差异很大,而且其他一些更改相当痛苦,我将我们网站项目的 dev 分支转换为 Web 应用程序项目,重新定位文件以匹配新路径,然后合并它们的更改,手动修复所有他们的Web 应用程序项目和我们转换后的Web 应用程序项目之间的合并冲突(如果您从未在 Visual Studio 项目的 XML 配置文件中手动修复合并冲突,请认为自己很幸运)。

所以如果你想象一下我们的 git repo,现在有两个分支有问题:dev,它已经成为一个 Web 应用程序项目,和 prod,它仍然是一个网站项目,与实际的生产站点有点不同步……原因。

客户尚未批准 dev 中的更改,也不太可能很快批准; 但是,他们确实需要对生产进行关键更改(与之前对生产的修补程序更改不同)范围足够大,需要通过完整的开发/质量保证/批准流程。

在这一点上,将整个站点作为一个 Web 应用程序项目是有优势的(当站点被创建为 Web 站点项目并首先签入 git 时,这些优势并不相关)。 我对 git 的最佳攻击计划是什么,它不会导致 Visual Studio 中的项目损坏,但会让我进入一个新的恢复的dev 分支,该分支既是 Web 应用程序项目,又与实际生产状态一致?

我知道它可能会涉及至少一个新分支来处理生产代码和开发分支的 Web 应用程序项目结构之间的合并,但我不知道从哪里开始。 我是否在 prod 之上检查 dev ? 生产超过开发的顶部? 一个新的空分支,我在那里按某种顺序检查它们?

我对Visual Studio不是很熟悉,但我认为您应该将项目从生产分支转换为Web应用程序项目,并使开发分支中的文件路径和生产分支中的文件路径尽可能相似,然后将它们合并。

Visual Studio 使用 Git。 不是某种仅限 VS 的 Git。

我的建议是创建一个新分支,我将其命名为web-app-feature

所以git checkout devgit branch web-app-feature 现在您有一个新分支指向与dev相同的提交。 现在我们需要将dev移动到master ,这在 Git 中非常简单。 执行git reset --hard master指示当前HEAD (这是dev因为它是我们的最后一次结帐)指向与master相同的提交。

现在你的仓库看起来有点像*-*-*-*-*<- master, dev | *-*-*-*-*-*<-web-app-feature *-*-*-*-*<- master, dev | *-*-*-*-*-*<-web-app-feature

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM