如何在Visual Studio中将项目添加到源代码管理(现有的GIT远程回购)中?

时间:2020-08-03 15:25:20

标签: git visual-studio

我有一个包含一个项目(项目1)的解决方案(解决方案1)。该项目已添加到源代码管理中,我通常会执行所有git操作。我对另一个具有不同存储库的项目(项目2)有另一个解决方案。

我想合并这2个解决方案,并将它们仅放在1个解决方案下。因此,我在解决方案1中的解决方案上单击鼠标右键,然后向其中添加现有项目(项目2)。我的问题是,在azure devops上的git repo无法看到我将此项目添加到了解决方案中,因此基本上我无法提交或还原或执行任何git操作。我该如何解决?我需要将该项目添加到源代码管理中,但是当我右键单击它时,添加到源代码管理中就没有了。

预先感谢

1 个答案:

答案 0 :(得分:1)

认为本地git回购包含父文件夹。它包括该文件夹或子文件夹中的所有(跟踪的)文件。

在您的解决方案中,可以有指向该git repo之外其他文件夹的引用。实际上,项目/解决方案2已经有一个单独的git repo,所以告诉我它在另一个文件夹中。

您有几种解决方法,但是从一开始,您很可能想从解决方案1中删除项目2。然后决定如何将项目2添加到解决方案1。



只需将它们分开存放!

最简单的响应实际上是将它们分开存放。您可以独立更改它们,并在自己的存储库中对其进行更新-但是,您已经注意到,如果使用VS的本机git接口,可能会出现一些问题-我认为您必须在解决方案之间进行交换。

最大的缺点是git不会在解决方案1的任何给定提交中自动跟踪正在使用哪个版本的项目2。您需要在某处显式指示的版本(我认为它可能在解决方案配置中的某处?)。我不会依靠解决方案配置来为您跟踪基础版本控制-更好地是由git直接跟踪所有版本。从版本控制系统的角度来看,其他解决方案更好。



只需将文件夹复制过来

管理项目2版本控制的最简单解决方案是将项目2文件夹从其自己的文件夹/ git repo复制到解决方案1的文件夹/ git repo中。首先将其从解决方案中删除,然后将其复制并读取新位置的项目2。

完成此操作后,您可以将其添加为解决方案1中的新项目,并且所有链接都将指向此本地副本。

但是,不利的一面是现在解决方案1 ​​/项目2和其单独回购中的原始项目2有所不同。如果此时项目2仅打算用于解决方案1,那可能就可以了。



使项目2成为子模块

稍微复杂一点的解决方案是使项目2的存储库成为解决方案1的存储库的子模块。这会将其添加为解决方案1文件夹层次结构中的文件夹,因此它看起来像先前的解决方案,但是进行一些额外的工作以了解如何更新子模块。

基本上,在这种设置下,添加了单独的git repo,并引用了该repo中要在任何给定时间使用的正确提交。您可以完全单独更新repo 2,也可以直接在子模块中对其进行更改,进行新的提交等,但是它们是单独的repos,并且git始终跟踪使用哪个版本的repo 2(哪个commit)。 ,因此版本控制是自动的。

上次使用Visual Studio时,我不认为它的本机git接口支持子模块。我不确定现在是否这样做。您可能需要学习如何在命令行或使用单独的可视GUI Git工具(例如GitExtensions(仅在Windows中,对于v3 +))进行管理。

相关问题