Visual Studio 2015 git 推送到网络驱动器

dan*_*n h 3 c++ git git-push visual-studio-2015

我正在与 Visual Studio Community 2015 中的其他几个人一起开发 C++ 项目,我们希望使用 VS2015 的内置 git 功能来管理我们的项目。我们希望每个用户在他们的笔记本电脑上都有一个本地 git 存储库,然后在我们推/拉到/从的网络驱动器上放置一个远程存储库。我想使用 VS2015 的内置 git 功能了解此特定设置的正确工作流程。我们不想使用 VS online 或 Team Foundation 版本控制或 git 的命令行版本(由于我们的工作性质,我们将无法访问互联网,也无法访问命令行提示符)。

我已经尝试了几件事来让它在没有任何运气的情况下工作。

首先我在VS2015中打开解决方案,然后点击file -> add to source control -> git,这就创建了一个本地仓库。然后我将我的文件提交到本地存储库。到目前为止没有问题。

接下来我想在网络驱动器上创建一个远程存储库。在项目的团队资源管理器中,我单击同步,它会询问空 git 存储库的 URL。我在网络驱动器上输入了我希望它使用的文件夹,但收到一条错误消息,提示它找不到存储库,可能是因为该文件夹为空。也许我错过了它,但似乎没有办法在 VS2015 中创建一个空的 git repo。

因此,为了尝试创建一个空的 git 存储库,我导航到文件-> 新建-> 存储库,然后在网络驱动器上的文件夹中创建 git 存储库。我认为将其输入到同步 -> URL 中,我得到一个不同的错误。此错误表示本地推送尚不支持推送到非裸存储库。在 VS2015 中创建新存储库似乎不会创建空存储库。

接下来,我尝试将我的本地存储库位置克隆到网络驱动器文件夹位置,这很有效。然后我转到我的本地存储库设置,并将远程存储库添加到遥控器,它现在显示在分支资源管理器窗口中。然后我对我的代码进行更改,转到更改,然后选择提交和推送。这次我又收到一个错误:“无法推送,因为当前分支没有跟踪远程分支,请将更改发布到远程。” 当我右键单击本地主分支时,发布选项是灰色的,因此我无法发布它。

为了解决这个问题,我右键单击远程/主分支,然后选择新的本地分支,并选择“跟踪远程分支(使用远程/主进行推和拉配置)”选项。我将这个分支命名为 local_master,它现在是一个已发布的分支。我假设我上面选择的选项现在允许我将更改从我新发布的 local_master 分支推送和拉取到 remote/master 分支。当我对 local_master 进行更改,提交,然后尝试推送时,我反而收到此错误:“本地推送(尚)不支持推送到非裸存储库。” 然后我右键单击 remote/master 分支并尝试从我的 local_master 合并到 remote/master,这表明它工作成功,但我的代码更改不在 remote/master 中。

我花了将近 8 个小时试图让它发挥作用并研究其他解决方案,但没有成功,我的智慧快要结束了。有人知道如何在网络驱动器上创建远程存储库,然后使用 VS2015 中的内置 git 控件从本地存储库推/拉到远程存储库吗?

Dan*_*ard 5

这是我目前的工作流程:

  1. 在 Visual Studio 中创建项目并选中“创建新的 Git 存储库”。
  2. 使用提交消息“初始提交”或类似信息进行本地提交。
  3. 打开项目目录,找到 .git 子目录。这个目录默认是隐藏的,所以你需要在 Windows 资源管理器中打开“显示隐藏的文件和文件夹”才能看到它。
  4. 右键单击 .git,属性 -> 取消选中“隐藏”,单击应用。
  5. 将目录重命名为 YourProjectName.git
  6. 编辑YourProjectName.git\config在文本编辑器(我建议记事本+ +,因为它不知道保存文件不带扩展名,这是必需的疑虑。该文件无法被保存为的config.txt)
  7. config:删除行logallrefupdates = true 更改行bare = falsebare = true 将文件另存为config(没有文件扩展名!!)
  8. 将整个YourProjectName.git目录复制到您希望主存储库所在的文件共享。
  9. 删除存储库的本地副本。
  10. 打开 Git Bash(或操作 -> 在 VS 2015 团队资源管理器中打开命令提示符)并 cd 到您希望项目目录所在的任何位置。例如cd C:\Users\YourUsername\Documents\Projects
  11. 从它的网络路径克隆存储库: git clone //repo-server/c/CompanyRepos/YourProjectName.git

显然,这些步骤中的许多步骤可以稍微不同或乱序完成,但重要的概念是在网络共享上初始化一个裸存储库,然后在本地将其克隆为完整存储库。

从网络共享中删除现有存储库和克隆的原因是确保所有遥控器都正确配置。

config上面推荐的编辑只是将现有完整存储库转换为裸存储库的一种方法。或者,如果您要从头开始创建新存储库,则只需在命令窗口中键入“git init --bare”即可。但是,值得注意的是,“git init”和VS 2015 的“创建新的Git 存储库”并不完全相同;因为 Visual Studio 在初始化存储库后添加了一些额外的设置。这些设置并不重要,但我认为值得注意的差异。