Visual Studio 中的 Git - 如何添加现有项目?

121

我正在尝试将一个现有的项目放入Git源代码控制下,但我对一些东西还不清楚。

我已经在线上设置了'Team Foundation Service' Git账户。

我目前有一个ASP.NET MVC 4解决方案 - 在我的Projects文件夹中。 我在本地创建了一个Git '仓库'(目前是一个空文件夹)。 这只需是我的当前应用程序文件夹在Projects中吗? 还是需要进行复制?

如何将我的现有文件放入在线仓库中?


2
你提到了“Visual Studio中的Git” - 你是在使用Visual Studio 2012中的Git工具吗? - Edward Thomson
我相信这已经被嵌入到2015版本的Team Explorer中了。我遇到了这个问题,无法在初始化后进行“发布”(vs的初始推送),因此我将添加一个答案,其中包含添加URI的说明。 - mschr
18个回答

173

我曾经搜索过类似的问题 - 我成功为一个现有项目文件初始化Git仓库的方法如下(免责声明:这是在没有设置团队基础设施服务器的情况下,在Visual Studio 2013 Express中完成的):

  1. 在Visual Studio中打开该项目。
  2. 转到菜单 文件添加到源代码控制

对于我来说,这就完成了 - 假设您已经设置好了Git,您可以转到菜单 视图团队资源管理器,然后双击您项目文件所在的存储库,并进行初始提交(确保添加您想要的任何文件)。


9
这样做还可以省去您自己"提供一个合适的.gitignore文件"的麻烦,因为Visual Studio会为您处理这个细节。在手动使用git init和这种方法之间,我现在更倾向于使用后者。 - MrCC
如果您想选择将此新解决方案添加到的项目,可以单击“同步”按钮 - 然后单击“发布到Git存储库”,然后单击“高级解决方案”并选择要将此新解决方案添加到的项目。完成后,您可以进行同步操作。 - Jamisco
1
请注意:这对我没有起作用,因为我已经添加了一个在另一个存储库中包含的共享库。在“添加到源代码控制”选项变为可用之前,我必须先删除共享项目。 - Neil B
3
应该将此功能添加到 Team Explorer 窗口中。 - Persk
1
这个应该已经不相关了... int 2020 - user1034912
即使在“多 Git”更新之后,Persk的评论仍然存在2022年的问题。 - Mmm

73
  1. 首先,您需要在本地开发机器上安装Git软件,例如Git Extensions
  2. 然后在解决方案文件夹中执行git init。这是创建存储库文件夹的正确方式。
  3. 设置一个合理的 .gitignore 文件,以便不提交不必要的内容。
  4. git add
  5. git commit
  6. 添加适当的远程仓库,如你的Team Foundation Server账户中所述 git remote add origin <proper URL>
  7. git push 你的代码

或者,可以使用Visual Studio集成的详细指南此处


这个很好用,谢谢Klas!需要注意的是,你需要将你的url放在引号中才能正常工作。 - Jack Fairfield
Git Extensions的新URL为:https://visualstudiogallery.msdn.microsoft.com/8f594baa-e44e-4114-8381-e175ace0fe97。 - JohnLBevan
@JohnLBevan 这个扩展看起来好像指向了一个旧版本。 - Klas Mellbourn
链接已经失效。 - user4146732
@PaulScharnofske 谢谢你告诉我。我现在已经修复了它们。 - Klas Mellbourn

17

在 Visual Studio 软件里翻了很久后,我终于找到了答案,这个过程比预计的要长得多。

如果你想把一个没有源代码控制的现有项目放到一个已存在的空的 GitHub 仓库里面,这个过程很简单,但是需要注意一些细节。最初的倾向是使用 Team Explorer,但是这样做是错的,也是你遇到问题的原因。

首先,将它添加到源代码控制中。有一些关于那方面的解释,大家都能做到这一步。

现在,这将打开一个空的本地存储库,没人告诉你的诀窍是完全忽略 Team Explorer,进入 Solution Explorer,右键单击解决方案,然后单击提交。

这时会提交你现有解决方案与本地存储库之间的所有差异,实质上是用所有这些新文件更新它。给它一个默认的提交名称“initial files”或者其他你喜欢的名字并提交。

然后简单地点击下一个屏幕上的“同步”按钮,并且输入空的 GitHub 仓库 URL。确保它是空的,否则你就会遇到主分支冲突,而且无法继续进行。所以,要么使用一个新的存储库,要么删除你之前搞砸过的旧存储库。请注意这是 Visual Studio 2013,所以可能会有所不同。


16

只需右键单击您的解决方案,然后选择添加到源代码控制。 然后选择Git。

现在您的项目已添加到本地源代码控制。 右键单击其中一个文件,然后选择提交

然后输入提交消息并选择提交。 然后选择同步以将您的项目与GitHub同步。 这需要拥有Git存储库。 转到GitHub,创建一个新存储库,复制存储库链接,并将其添加到远程源代码控制服务器。 选择发布

就这些。


这个答案是正确的,并且在VS 2015中可以工作。然而,作为一个新的git用户,我有一个主要问题。VS 2015似乎没有创建gitignore文件或提供任何忽略由VS创建的dlls/文件的方法,这些文件不应该被检查。比如obj文件夹,它试图将所有东西提交到本地仓库。还有其他人遇到这个问题吗?我不想把所有这些东西都提交到本地。 - Matt
随着我学到更多的知识,我会修改我上面的评论。当我检查目录时,它实际上构建了gitignore文件,这非常好,因为它非常大,我不想尝试手动构建它。然而,当我尝试将我的初始提交提交到本地repo时,VS没有使用这个gitignore文件,因为所有文件都可以提交到git中,这是一个很大的混乱。所以我关闭了解决方案,删除了我的解决方案中的.git文件夹和2个git文件(从git中分离),重新打开并转到文件->添加到源代码控制,并再次选择git。这次它工作得很好。 - Matt
现在是2019年12月,这变得更加容易了。在我完成上述步骤并点击同步后,系统会提示我输入GitHub账户信息以及是否将其设为私有仓库。一旦选择完毕,新的代码仓库就会被创建(无需前往GitHub),并且创建成功。 - batpox

6
最简单的方法显然是如MSDN文章所述:使用Visual Studio 2017和VSTS Git共享您的代码
  1. 在Visual Studio右下角状态栏中选择添加到源代码控制,为您的项目创建一个新的本地Git存储库。这将在解决方案所在的文件夹中创建一个新的存储库,并将您的代码提交到该存储库中。

    Enter image description here

  2. 在Team Explorer的推送视图中,选择推送到Visual Studio Team Services下的发布Git存储库按钮。

    Enter image description here

  3. 连接远程源代码控制,输入您的存储库名称并选择发布存储库

    Enter image description here


5

使用SourceTree

在解决方案资源管理器中右键单击解决方案名称。选择"添加到源代码控制"

然后转到SourceTree,选择克隆/新建。选择添加工作文件夹并指向你刚在解决方案中创建的新Git位置。

前往空的Git(Bitbucket或GitHub)获取克隆地址,然后返回SourceTree,右键单击远程并添加新远程。(在现代版本中,请转到存储库添加远程...。将URL粘贴到该框中并点击OK

这是如何进行初始提交和推送的方法。


4
在Visual Studio 2015上,我最终让它运行的唯一方法是在命令行中使用git init从我的目录根目录运行。然后我进入了Team Explorer并添加了一个本地git存储库。然后我选择了该本地git存储库,转到“设置” ->“存储库设置”,并添加了我的远程存储库。这就是我最终能够将Visual Studio与git集成以使用我的现有项目的方式。

我阅读了所有答案,但没有一个对我起作用。我去了“文件” ->“添加到源代码控制”,这应该基本上与git init相同,但它似乎没有初始化我的项目,因为当我然后去到Team Explorer时,所有选项都变灰色了。更重要的是,更改对话框中也不会显示任何内容。另一个答案指出,我只需要在Team Explorer中创建一个本地存储库,然后我的更改就会显示出来,但这也没有起作用。只有通过命令行初始化我的项目后,Team Explorer上的所有Git选项才有效。

我对Visual Studio还很陌生,所以我不知道是否错过了一些明显的东西,但看起来我的项目并没有从Visual Studio中初始化。


在你选择“文件->添加到源代码控制”之后,是否在“源代码控制-Git”窗格的输出窗口中有任何内容?我不会期望在更改页面中看到任何内容,但如果您查看了Git存储库的历史记录,我会期望它显示一个提交“添加项目文件”,其中文件已提交到存储库。 - jamill
这个和源代码控制浏览器一样吗?如果是的话,它什么都不显示。它只显示一个添加源代码控制插件的链接。当我点击它并选择Git时,什么也没有发生。至于团队资源管理器中的其他面板,也没有任何动静。直到我从命令行初始化项目并从连接窗格创建本地存储库后,我才开始看到VS Git工具与我的项目交互。 - chavab_1

2
这个过程在与GitHub结合使用时,对于VS2017 / VS2019(甚至可能更早,但我没有测试)大大简化了:
  1. 在GitHub中创建一个空的存储库 => https://github.com//.git

  2. 安装Visual Studio的GitHub扩展

  3. 按照这些说明进行操作:(可选择将其添加到源控件以进行git初始化)->团队资源管理器->同步->发布到GitHub->https://github.com//.git

"Original Answer"翻译成"最初的回答"

并不是每个人都使用Github。 - user1034912
@user1034912 是的,我目前在工作中使用Gitlab。我期望Gitlab Visual Studio扩展也采用类似的方法。 - Alexei - check Codidact

2

首先创建一个带有所需相对路径的“解决方案文件夹”。请注意,Visual Studio 2012不会创建具有相同相对路径的系统文件夹。

现在,在该“解决方案文件夹”中添加一个新项目,但在定义它时必须小心,以使系统中的相对路径与您的新“解决方案文件夹”的相对路径匹配。如果您想要的系统文件夹不存在,则Visual Studio 2012将为新项目创建它。(如上所述,当您添加新的“解决方案文件夹”时,它不会这样做。)

如果您想添加一个匹配相对路径的现有文件,则必须先在Visual Studio之外的匹配系统相对路径中创建该文件。然后您可以在Visual Studio中使用“添加现有文件”。


2

我已经按照以下步骤将现有项目添加或导出到GitHub,并且它适用于所有环境。

  1. 在GitHub中创建新的Repo,然后复制Repo URL
  2. 在VS或Gitbash中打开终端
  3. 您应该在项目路径/工作目录中
  4. git init -- 在本地目录上初始化git
  5. git add . -- 添加您的项目
  6. git commit -m "YOUR MESSAGE"
  7. git remote add origin
  8. git remote -v
  9. git push -f origin master -- 将更改推送到Git repo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接