将现有的C#项目添加到Git控制的解决方案中

将现有的C#项目添加到Git控制的解决方案中,git,visual-studio-2015,version-control,Git,Visual Studio 2015,Version Control,这件事让我很开心。我读过几篇SO和MSDN的文章,但看起来我没有其他答案告诉我点击的菜单选项 我是Git的新手。我有VS2015,有几个团队连接(一个“TFS”visualstudio.com,我自己在visualstudio.com上的Git,现在我在visualstudio.com上连接了其他人的Git)。我已经安装了Git扩展 我连接到同事的Git项目,克隆存储库,然后它就会出现在本地。我可以对她的文件进行编辑,这些编辑会出现在挂起的更改中。我可以演戏,也可以承诺,这很好 我可以将文件添加

这件事让我很开心。我读过几篇SO和MSDN的文章,但看起来我没有其他答案告诉我点击的菜单选项

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

我连接到同事的Git项目,克隆存储库,然后它就会出现在本地。我可以对她的文件进行编辑,这些编辑会出现在挂起的更改中。我可以演戏,也可以承诺,这很好

我可以将文件添加到她的项目中,它们可以很好地进行阶段和提交

但是,我正在尝试添加csproj文件。我在VS中通过右键单击解决方案,选择“添加”,选择“现有项目”(它位于不同的目录中)来实现这一点。在本地,这非常有效,但是,我添加的项目没有“锁定”图标,表明它受源代码管理控制,对这些文件的更改不会出现在“挂起的更改”中

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

我已经为此奋斗太久了。有人能帮我吗?我觉得我错过了一大步。Git对我工作的每个人来说都是新的,他们从来没有遇到过这个问题(他们以前可能从来没有添加过现有的csproj…)

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

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

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

提示:对于TFS git repoject,在VS中,您可以在VS的右下角找到一个笔符号(表示待定的更改)和一个向上箭头(未推送的提交),您可以直接单击该符号进行提交和推送。

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


提示:对于TFS git repoject,在VS中,您可以在VS的右下角找到笔符号(表示挂起的更改)和向上箭头(未推送的提交),您可以直接单击该符号进行提交和推送。

是的,您需要将文件复制到本地克隆中。您需要阶段化、提交(更改选项卡),然后推送(同步选项卡)。推送后,应该可以从远程repo拉入本地repo。@jessehouwing:我真的必须在本地复制源文件吗?如果这是一个我想在多个解决方案中使用的项目呢?我将不得不在多个地方进行更新!此外,我在本地复制了文件(作为测试)并提交了更改。它们出现在网上回购协议中。我也可以得到它们(我删除了我的本地回购协议,重新克隆,项目出现了)。。。但它们不像中那样是“源代码控制”的,它们没有锁定图标,我所做的更改也没有出现在“挂起的更改”中。如果它是一个共享库,你可以将它转换为一个nuget包,并从你的解决方案中引用它。或者他们可以。住在第二个git repo中,您可以使用子模块。是的,您需要将文件复制到本地克隆中。您需要阶段化、提交(更改选项卡),然后推送(同步选项卡)。推送后,应该可以从远程repo拉入本地repo。@jessehouwing:我真的必须在本地复制源文件吗?如果这是一个我想在多个解决方案中使用的项目呢?我将不得不在多个地方进行更新!此外,我在本地复制了文件(作为测试)并提交了更改。它们出现在网上回购协议中。我也可以得到它们(我删除了我的本地回购协议,重新克隆,项目出现了)。。。但它们不像中那样是“源代码控制”的,它们没有锁定图标,我所做的更改也没有出现在“挂起的更改”中。如果它是一个共享库,你可以将它转换为一个nuget包,并从你的解决方案中引用它。或者他们可以。住在第二个git回购中,您可以使用子模块。谢谢marina。在你的答案和@jessehouwing之间,我现在明白了这是一个我必须习惯的新范例,这很好,但这仍然不能回答问题的另一部分,那就是:当我将项目目录复制到我的git repo并提交/推送/同步它时,为什么从那时起我对那个项目所做的更改没有被跟踪?今天,我将花一些时间复制这个行为(这是一个侥幸吗?),并尝试“git添加”功能。谢谢,你说不被跟踪是什么意思?如果您复制了一个.csproj文件,然后提交/推送/同步,git会跟踪该文件,并且可以在版本控制中找到更改。我的意思是,我将包含该csproj文件的文件夹物理复制到本地git repo并推送。所有文件和文件夹都出现在在线repo中。我删除了我的本地回购协议并撤销了。我的项目文件夹和文件关闭了,但是,它们没有锁定图标,当我在项目中编辑文件时,该文件没有显示在挂起的更改中。我对另一个项目中的其他文件进行了更改并按下了按钮。第二个项目的更改已联机显示,但添加项目的更改未联机显示。如果删除w