【问题标题】:Add Existing C# Project to Git-controlled Solution将现有 C# 项目添加到 Git 控制的解决方案
【发布时间】:2017-01-06 10:31:56
【问题描述】:

我玩得很开心。我已经阅读了几篇 SO 和 MSDN 文章,但看起来我只是没有所有其他答案都告诉我点击的菜单选项。

我是 Git 新手。我有 VS2015,有几个团队连接(一个“TFS”visualstudio.com,我自己在visualstudio.com 上的Git,现在我已经连接到其他人在visualstudio.com 上的Git)。我已经安装了 Git 扩展。

我连接到我同事的 Git 项目,克隆存储库,它出现在本地。我可以对她的文件进行编辑,这些编辑会出现在 Pending Changes 中。我可以暂存和提交,这很好。

我可以将文件添加到她的项目中,并且它们可以很好地暂存和提交。

但是,我正在尝试添加一个 csproj 文件。我通过右键单击解决方案在 VS 中执行此操作,选择“添加”,选择“现有项目”(它位于不同的目录中)。在本地这很好用,但是,我添加的项目没有得到“锁定”图标,表明它受源代码管理控制,并且对这些文件的更改不会出现在“待更改”中。

尝试另一种策略,我已将我的项目文件夹(请告诉我这不是必需的!)复制到我的本地 git 存储库中(我使用该术语对吗?我克隆 Git 项目的本地目录?)。突然,所有添加的文件都出现在“Pending Changes”中!我可以暂存和提交,它们会出现在 visualstudio online 中......但是当我重新同步时,我对该项目所做的更改不会出现在“Pending Changes”中。

我已经为此苦苦挣扎太久了。有人可以帮帮我吗?我觉得我错过了重要的一步。 Git 对我共事的每个人来说都是新的,他们从来没有遇到过这个问题(他们之前可能从来没有添加过现有的 csproj ......)。

附加信息: 我可以将 csproj 添加到我的“TFS”团队项目中(这没有帮助),但我也不能将它添加到我自己的个人 Git 项目中。

我没有任何“将项目添加到源代码管理”菜单选项。

【问题讨论】:

  • 是的,您需要将文件复制到本地克隆中。您需要暂存、提交(更改选项卡)然后推送(同步选项卡)。推送后,应该可以从远程仓库拉入本地仓库。
  • @jessehouwing:我真的必须在本地复制源文件吗?如果这是我想在多个解决方案中使用的项目怎么办?我将不得不在多个地方进行更新!另外,我确实在本地复制了文件(作为测试)并提交了更改。他们出现在网上的回购中。我也可以得到它们(我删除了我的本地仓库,重新克隆,项目出现了)......但它们不是“源代码控制”,它们没有锁定图标,我所做的更改也没有'不会出现在“待更改”中。
  • 如果它是一个共享库,你可以把它变成一个 nuget 包并从你的解决方案中引用它。或者他们可以。住在第二个 git repo 中,你可以使用子模块。

标签: git visual-studio-2015 version-control


【解决方案1】:

您不能使用(添加 -> 现有项目)这种方式将文件添加到 TFS 本地存储库。您应该使用第二种方式(将要进行版本控制的文件复制到本地 git repo 中)。然后提交更改为您添加文件。

提示: 对于 TFS git repoject,在 VS 中您可以找到 笔符号(表示待更改)和 向上箭头 符号( unpushed commits)在VS的右下角,你可以直接点击符号提交和推送。

【讨论】:

  • 谢谢码头。在您的回答和@jessehouwing 之间,我现在明白这是一个我必须习惯的新范例,这很好,但这仍然不能回答问题的另一部分,即:当我确实将项目目录复制到我的 git repo,并提交/推送/同步它,为什么我从那时起对该项目所做的更改没有被跟踪?今天我将花一些时间复制这种行为(这是侥幸吗?),并尝试“git add”的东西。谢谢。
  • 未跟踪是什么意思?如果你复制了一个 .csproj 文件,然后提交/推送/同步,这个文件会被 git 跟踪,并且可以在版本控制中找到更改。
  • 我的意思是,我将包含 csproj 文件的文件夹复制到我的本地 git repo 并推送。所有文件和文件夹都出现在在线存储库中。我删除了我的本地仓库并拉了。我的项目文件夹和文件出现了,但是,它们没有锁定图标,当我在项目中编辑文件时,该文件没有出现在挂起的更改中。我对另一个项目中的其他文件进行了更改并推送。第二个项目的变化出现在网上,但添加项目的变化没有。
  • 如果你删除整个本地repo,当你拉取时,它会显示错误消息,因为直接工作是无效的。如果您只删除包含 csproj 文件的文件夹,这是您未提交的更改,当您拉取时,它将显示already up to date。如果您提交此更改,但本地分支在远程之前,它也会为您显示消息。您还可以注意到输出窗口以检查是否有错误消息。
  • 误传:不是删除 repo 和 pull,而是删除 repo 和 clone。输出窗口没有显示错误。 Proj 文件夹和文件出现,但对这些文件的进一步更改未注册。
猜你喜欢
  • 1970-01-01
  • 2017-10-05
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多