簡體   English   中英

如何在 visual studio 中將項目添加到源代碼管理(現有 GIT 遠程倉庫)?

[英]How to add a project to source control (existing GIT remote repo) in visual studio?

我有一個包含項目(項目 1)的解決方案(解決方案 1)。 該項目已添加到源代碼管理中,我正常執行所有 git 操作。 我有另一個具有不同回購協議的項目(項目 2)的解決方案。

我想合並這 2 個解決方案並將它們僅放在 1 個解決方案下。 因此,我在解決方案 1 中右鍵單擊我的解決方案並將現有項目(項目 2)添加到其中。 我的問題是 azure devops 上的 git 回購看不到我將這個項目添加到解決方案中,所以基本上我無法提交或還原或執行任何 git 操作。 我該如何解決? 我需要將此項目添加到源代碼管理,但是當我右鍵單擊它時,添加到源代碼管理不存在。

提前致謝

將本地 git 回購視為包含父文件夾。 它包括該文件夾或子文件夾中的所有(跟蹤)文件。

在您的解決方案中,可以有指向 git 存儲庫之外的其他文件夾的引用。 事實上,項目/解決方案 2 已經有一個單獨的 git 存儲庫,所以這告訴我它在不同的文件夾中。

您有幾種方法可以解決此問題,但首先,您很可能希望從解決方案 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 2,或者可以直接在子模塊中更改它,進行新的提交等,但它們是單獨的 repos,git 始終跟蹤正在使用哪個版本的 repo 2(哪個提交) ,所以版本控制是自動的。

上次我使用 Visual Studio 時,我不相信它的原生 git 接口支持子模塊。 我不確定現在是否如此。 您可能需要了解如何在命令行或使用單獨的可視化 GUI Git 工具(例如GitExtensions) (僅在 Windows 上,適用於 v3+)來管理它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM