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


105

我正在尝试将现有项目置于Git源代码控制下,但在几件事上还不清楚。

我已经在线设置了“ Team Foundation Service” Git帐户。

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

如何将现有文件放入在线存储库?


您提到“ Visual Studio中的Git”-您是否在Visual Studio 2012中使用git工具?
爱德华·汤姆森

我相信这已经嵌入到Team Explorer下的2015版本中。我遇到了这个问题,在这里我无法“发布”(相对于init之后的初始推送),因此我将添加一个有关添加URI的说明的答案
mschr

Answers:


148

我一直在寻找类似的问题-我设法为现有项目文件初始化Git存储库的方式是这样的(免责声明:这是在Visual Studio 2013 Express中完成的,而没有Team Foundation Server的安装):

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

这对我来说就是成功的-假设为您设置了Git,您可以进入菜单ViewTeam Explorer,然后双击项目文件的存储库,并进行初始提交(确保添加所需的任何文件) )。


7
这也会为您省去“提供合理的.gitignore文件”的麻烦,因为Visual Studio会为您处理这一细节。从手动git init到此,这是我从现在开始的首选方法。
MrCC 2015年

如果您想选择该新解决方案进入的项目,则可以单击“同步”按钮-然后单击“发布到git repo”,然后单击“高级解决方案”,然后选择要添加此新解决方案的项目。完成此操作后,您便可以同步并开始
播放音乐了-Jamisco

注意:这对我不起作用,因为我已经添加了另一个库中包含的共享库。在“添加到源代码管理”选项可用之前,我必须删除共享项目。
尼尔·B

2
他们应该将其添加到“团队资源管理器”窗口。
thReality

66
  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集成。


很好,谢谢,克拉斯!注意事项:您必须在网址中加上引号才能正常使用。
杰克·费尔菲尔德


@JohnLBevan该扩展看起来是指向一个旧版本
克拉斯Mellbourn

链接断开了

@PaulScharnofske感谢您告诉我。我已经修复了它们
Klas Mellbourn '16

15

在遍历Visual Studio之后,我终于找到了答案,该答案花费的时间远远超过了应该的时间。

为了在没有源代码控制的情况下接受现有项目并将其放入现有的EMPTY(这很重要)GitHub存储库,该过程很简单,但很棘手,因为您的第一个倾向是使用Team Explorer,这是错误的,这就是为什么你有问题。

首先,将其添加到源代码管理中。上面对此有一些解释,每个人都可以做到这一点。

现在,这将打开一个空的LOCAL存储库,而没人告诉您的窍门是完全忽略Team Explorer,然后转到Solution Explorer,右键单击解决方案,然后单击Commit。

然后,这将提交您现有解决方案和本地存储库之间的所有差异,实质上是使用所有这些新文件对其进行更新。给它一个默认的提交名称“ initial files”或随便浮动并提交的内容。

然后,只需在下一个屏幕上单击“ 同步”,然后放入EMPTY GitHub存储库URL。确保它为空,否则您将遇到master分支冲突,并且不允许您这样做。因此,要么使用一个新的存储库,要么删除您以前搞砸的旧存储库。请记住,这是Visual Studio 2013,因此您的里程可能会有所不同。


14

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

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

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

就这样。


这个答案是正确的,并且可以在VS 2015中使用。但是,作为一个新的git用户,我遇到了一个主要问题。VS 2015似乎没有创建gitignore文件,也没有提供任何方式来忽略不应由VS创建的dll创建的dll /文件。例如,像obj文件夹,它正在尝试将所有内容提交到本地存储库中。其他人有这个问题吗?我不希望所有这些东西都在本地提交。
马特

当我了解更多信息时,将在上面修改我的评论。当我检查目录时,它实际上确实构建了gitignore文件,该文件很棒,因为它很大,我不愿意尝试手动构建它。但是,当我尝试将其首次提交到本地存储库中时,VS并未使用此gitignore文件,因为所有文件都可用于提交到git中,这很麻烦。所以我关闭了解决方案,删除了我的解决方案中的.git文件夹和2个git文件(与git分离),重新打开并转到文件->添加到源代码管理中,然后再次选择了git。这次效果很好。
马特

现在是2019年12月,而且更加容易。完成上述步骤并单击“同步”后,会提示我使用GitHub帐户,以及是否要将其设为私有存储库。选择之后,将为我创建新的存储库(无需我去GitHub)并成功创建了。
batpox

5

使用SourceTree

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

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

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

这是您进行初始提交和推送的方式。


5

最简单的方法显然是在MSDN文章“ 与Visual Studio 2017和VSTS Git共享代码”中所述。

  1. 通过在Visual Studio右下角的状态栏中选择“ 添加到源代码管理”,为您的项目创建一个新的本地Git存储库。这将在解决方案所在的文件夹中创建一个新的存储库,并将您的代码提交到该存储库中。

    在此处输入图片说明

  2. 在Team Explorer的Push视图中,选择Push to Visual Studio Team Services下的Publish Git Repository按钮。

    在此处输入图片说明

  3. 连接Remote Source Control并输入您的存储库名称,然后选择Publish Repository

    在此处输入图片说明


3

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

我阅读了所有答案,但没有一个对我有用。我去了File-> Add To Source Control,假定它基本上与相同git init,但是它似乎没有初始化我的项目,因为当我随后进入Team Explorer时,所有选项均灰显。同样,“更改”对话框中也不会显示任何内容。另一个答案是,我只需要在Team Explorer中创建本地存储库,然后我的更改就会显示出来,但是那也不起作用。仅在我通过命令行初始化项目后,Team Explorer上的所有Git选项才起作用。

我是Visual Studio的新手,所以我不知道我是否错过了显而易见的事情,但是看来我的项目不是从Visual Studio初始化的。


选择“文件->添加到源代码管理”后,“源代码控制-Git”窗格的“输出”窗口中是否有任何内容?我不会在“更改”页面中看到任何内容,但是,如果您查看了Git存储库的历史记录,则希望它显示一个提交“添加项目文件”,其中文件已提交到存储库。
jamill's

这与“源代码管理资源管理器”相同吗?如果是这样,它什么也不会显示。它只是显示一个添加源代码控制插件的链接。当我单击它并选择Git时,什么也没有发生。至于Team Explorer中的其他面板,也没有任何反应。只有从命令行初始化项目,然后从“连接”窗格创建本地存储库后,我才开始看到VS Git工具与项目交互。
chavab_1'2

2

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

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

如果要添加具有匹配的相对路径的现有文件,则必须首先从Visual Studio外部在匹配的系统相对路径中创建文件。然后,您可以在Visual Studio中添加现有文件


1

如果所需的存储库已经存在(也许在GitHub上),则可以将其克隆到本地系统,然后将解决方案目录复制到其中。然后添加文件,提交文件,然后推送本地文件。这将解决方案放入存储库中。


1

Visual Studio中的Git-添加现有项目;如何将本地存储库发布到GitHub,GitLab等项目上。

因此,您已经创建了一个解决方案,并且希望通过某个地方的Git帐户将其上传并版本控制。Visual Studio 2015在Team Explorer中为此提供了工具。

正如Meuep所述,加载您的解决方案,然后浏览File >> Add to Source Control。这等于git init。然后您将拥有:

团队资源管理器主页

现在,选择Settings >> Repository Settings并滚动到Remotes

在此处输入图片说明

设置origin(确保在此放置该保留名称)并设置URI。

然后,你可以使用AddSyncPublish



0

如果要从GitHub打开现有项目,则需要执行以下操作(这些步骤仅适用于Visual Studio 2013 !!!以及更新的版本,因为在旧版本中没有内置的Git安装):

  1. 团队资源管理器→连接到teamProjects→本地GitRepositories→ 克隆

  2. 从浏览器复制/粘贴您的GitHub地址。

  3. 选择此项目的本地路径。


0

对我来说,已经创建了一个Git存储库(不是GitHub),但是为空。这是将现有项目添加到Git存储库的解决方案:

  1. 我克隆并使用Gi​​t Extensions签出了一个存储库。
  2. 然后,我将现有的项目文件复制到此存储库中。
  3. 添加了一个.gitignore文件。
  4. 暂存并提交所有文件。
  5. 推送到远程存储库。

看到所有这些都直接在Visual Studio 2015中完成而没有诸如Git Extensions之类的工具会很有趣,但是我在Visual Studio中尝试的操作不起作用(添加到源代码管理不适用于我的项目,添加远程功能则没有。帮助等)。


0

要在解决方案中添加项目,只需打开“团队资源管理器”窗口并转到“更改”即可。然后,在“未跟踪的文件”下,单击“查看选项”,然后选择“切换到树视图”(除非它已经在树视图中),右键单击项目的根文件夹,然后选择“ 添加”

在此处输入图片说明


0

我总是忘记了这一点,所以这对我自己来说更多,但也许可以帮助其他使用VS的人。

Visual Studio具有解决方案的概念。但是,在git中,它具有由本地和远程分支跟踪的git存储库的概念。所有添加到git的文件和文件夹都是本地的。

现在回到创建标准模板项目时的Visual Studio解决方案,它会在该解决方案本地创建所有项目。

因此,当您添加不在解决方案或git本地的项目时,就会发生此问题。发生的情况是,解决方案文件.sln已使用项目位置更新,但是无法将项目,项目文件和文件夹的实际内容添加到git中,因为它们位于单独的目录或单独的网络驱动器或某个ftp服务器中等等。如果您只希望引用仅在.sln文件中编译的项目文件的引用,或者希望将其来源以单独的git或github存储库,则可能更可取。但是您不希望git在本地跟踪实际文件。

为了解决这个问题(即,您要将它们添加到git存储库中),只需在解决方案及其项目文件的范围内移动所需的远程文件,使其位于本地即可。


0

这是在Visual Studio 2015中执行的方法。

  1. 打开项目,然后转到“工具” >>“选项” >>“源代码控制”选项卡,然后选择“ Git”作为源代码控制。 在此处输入图片说明

  2. 转到文件菜单,然后选择“添加到源代码管理”。

这实际上是通过Visual Studio创建所有铃声(通过设置忽略相应的文件,例如忽略用户特定的文件,临时文件,目录等)来执行“ git init”。

基本上,您的git信息库是在本地正确创建的(这是VS项目的主要步骤,因为此文件夹包含许多我们要忽略的文件)。

现在,您可以将此git存储库连接到git bash(Visual Studio外部)中的任何其他git,如GitHub,BitBucket等。

我现在在此工作目录中启动Git Bash会话,并且由于我使用BitBucket,因此请按照此处给出的说明进行操作(只需从此处复制下面的行)。

git remote add origin https://您的用户名@ bitbucket.org /您的用户名/hookdemo.git

git push -u原始主机

而已。

之后,由于现在可以正确设置仓库,因此您可以在git命令行本身上管理仓库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.