【发布时间】:2015-12-29 17:08:28
【问题描述】:
我正在与 Visual Studio Community 2015 中的其他几个人一起开发 C++ 项目,我们希望使用 VS2015 的内置 git 功能来管理我们的项目。我们希望每个用户在他们的笔记本电脑上都有一个本地 git 存储库,然后将一个远程存储库放在我们推/拉到/从的网络驱动器上。我想知道使用 VS2015 的内置 git 功能进行此特定设置的正确工作流程。我们不想使用 VS online 或 Team Foundation 版本控制或 git 的命令行版本(由于我们的工作性质,我们将无法访问 Internet,也无法访问命令行提示符)。
我已经尝试了几种方法来让它工作,但没有任何运气。
首先我在VS2015中打开解决方案,然后点击file -> add to source control -> git,创建一个本地仓库。然后我将我的文件提交到本地存储库。到目前为止没有问题。
接下来我想在网络驱动器上创建一个远程存储库。在项目的团队资源管理器中,我单击同步,它会询问空 git 存储库的 URL。我在网络驱动器上输入了我希望它使用的文件夹,但我收到一条错误消息,提示它找不到存储库,可能是因为该文件夹为空。也许我错过了它,但似乎没有办法在 VS2015 中创建一个空的 git repo。
所以要尝试创建一个空的 git 存储库,我导航到 File-> new-> Repository,然后在网络驱动器上的文件夹中创建 git 存储库。我认为将其输入到 Synchronization -> URL 中,我得到一个不同的错误。此错误表示本地推送尚不支持推送到非裸仓库。在 VS2015 中创建新的仓库似乎不会创建一个空的仓库。
接下来,我尝试将本地存储库位置克隆到网络驱动器文件夹位置,这很有效。然后我转到我的本地存储库设置,并将远程存储库添加到 remotes,它现在显示在分支资源管理器窗口中。然后我对我的代码进行更改,转到更改,然后选择 Commit and Push。这次我得到另一个错误:“无法推送,因为当前分支没有跟踪远程分支,将更改发布到远程。”右键本地master分支,发布选项灰显,无法发布。
为了解决这个问题,我右键单击远程/主分支,然后选择新的本地分支,并选择“跟踪远程分支(使用远程/主配置进行推送和拉取)”选项。我将此分支命名为 local_master,它现在是一个已发布的分支。我假设我上面选择的选项现在允许我从新发布的 local_master 分支推送和拉取更改到远程/主分支。当我对 local_master 进行更改,提交,然后尝试推送时,我得到了这个错误:“本地推送不(还)支持推送到非裸仓库。”然后我右击remote/master分支并尝试从我的local_master合并到remote/master,这说明它工作成功,但是我的代码更改不在remote/master中。
我花了将近 8 个小时试图让它发挥作用并研究其他解决方案,但没有成功,我已经无计可施了。有人知道如何在网络驱动器上创建远程存储库,然后使用 VS2015 中的内置 git 控件从本地存储库推/拉到远程存储库吗?
【问题讨论】:
-
这很罗嗦。也许一些图片会有所帮助?
-
我个人使用命令提示符...所以只是一个问题。当您执行“ File-> new-> Repository”时,有没有办法制作一个裸仓库 - 因为这是一个反复出现的错误消息。
-
另外,如果您的雇主不让您使用命令行,并且如果您愿意花一整天时间无法使版本控制正常工作,请告诉他们是谁。
-
@doctorlove:他们给你的唯一选择是选择新 git 存储库的目的地。我不确定它在做什么。我查看了以这种方式创建的新 git 存储库的 a 文件夹,它具有以下内容:1)一个 .git 文件夹 2)一个 .gitattributes 文件,3)一个 .gitignore 文件。一个空的 repo 文件夹会是什么样子?我也一直在自己的时间研究这个,因为我放假了。
标签: c++ git git-push visual-studio-2015