【问题标题】:Visual Studio GIT sync with local/network file folder as remote/originVisual Studio GIT 与本地/网络文件夹同步为远程/源
【发布时间】:2015-09-29 09:00:46
【问题描述】:

我有一个提交的本地 GIT 存储库,但到目前为止尚未同步。我根据https://stackoverflow.com/a/20004092/586754 创建了它,这基本上会导致 repo 的本地部分没有远程/来源。

我没有(公司)GIT 服务器,但有一个 Onedrive for Business 帐户,至少可以完美地备份存储库,以防狗吃掉机器。 (稍后的计划是在事情稳定后迁移到 comany VCS,即 SVN。)

我知道 GIT 可以同步到文件系统,但是.. 怎么做呢?

  1. 由于我已经在 Visual Studio 中作为远程存储库输入了一些错误数据(它询问我何时选择“同步”选项,抱怨,现在所有选项在“同步”下都是灰色的),我该如何更改?只能通过命令行像

    git remote set-url origin "C:\Users\Test\OneDrive for Business\Andreas\code\project1"
    
  2. 网络共享和本地共享的正确 GIT URL 是什么? (就我而言,我对本地 Windows 共享最感兴趣,因为我希望 Onedrive 负责备份。)

我现在有一个空文件夹作为远程文件夹(我创建了包含“project1”的完整路径)并且还通过命令行收到错误:

git push --set-upstream origin master
fatal: 'C:\Users\Test\OneDrive for Business\Andreas\code\project1' does not appear to be a git repository
fatal: Could not read from remote repository.

初始推送还需要其他什么吗?到目前为止,我只使用了 bitbucket/github,其中我事先通过 Web 界面明确创建了一个 repo。

【问题讨论】:

    标签: git visual-studio-2013 filesystems


    【解决方案1】:

    经过一番搜索..

    我犯了以下错误:

    1. Git Repo 需要初始化:

      git init --bare project1.git
      
    2. 正确的文件夹命名,也

    3. 一切都需要从命令行完成

    所以,如果你从头开始,这里是 Windows 上的过程(嗯,毕竟是 Visual Studio 集成..):

    1. 在本地或网络共享上获取位置
    2. cd 进入该位置并执行(有关更多信息以及如何 cd 进入网络路径,请参阅http://elegantcode.com/2011/06/18/git-on-windows-creating-a-network-shared-central-repository/

      cd ""C:\Users\Test\OneDrive for Business\Andreas\code\project1"
      git init --bare project1.git
      
    3. 您现在可以在 Visual Studio 中输入位置作为原点,一切正常。然后您可以在此处停止/VS 将成功同步。

      如果您(像我一样)首先添加了错误的位置并且无法再更改它
    4. 在命令行上继续,在本地 git repo/源文件的文件夹中:

      git remote set-url origin "file:///C:\Users\Test\OneDrive for Business\Andreas\code\project1\project1.git"
      

      将设置正确的远程/原点(我们无法在 Visual Studio 中执行此操作,请使用 VS2015 进行检查)

    5. 告诉 git 使用哪些分支

      git push --set-upstream origin master
      
    6. 现在 Visual Studio 中的“同步”应该可以工作了,您也可以从命令行(仅推送)执行此操作:

      git push
      
    7. 也可以在 Visual Studio 中进行测试

    对于 Windows 上的正确 URL,对于本地文件夹,它是

    file:///C:\Users\Test\OneDrive for Business\Andreas\code\project1\project1.git
    

    对于网络共享,您可以将其映射到本地驱动器并使用该驱动器(与本地文件夹相同)或

    file:////remoteServer/git/Share/Folder/Path/project1.git
    

    file://\\MyWorkPC\folder\project1.git
    

    (另见https://stackoverflow.com/a/2520121/586754

    【讨论】:

    • 非常感谢!步骤 5,6 解决了问题,我几乎放弃了。收到“此传输未实施。抱歉”错误,找不到解决方案! THX
    【解决方案2】:

    我为此工作了大约一个小时。相当令人沮丧。最后,这是我必须做的。

    1. 在我的网络共享上为我的存储库创建一个目录。
    2. 使用 TortoiseGit 的 Git 克隆。右键单击我当前的本地存储库目录并克隆到我的远程存储库目录。制作 一定要选择“Clone into Bare Repo”
    3. 然后我右键单击我的原始、本地、repo 并使用 TortoiseGit 来“推送”。在出现的对话框中,我选择了 “管理”按钮并将 URL 添加到我的网络驱动器存储库。一世 完成推送,成功。
    4. 当我回到 Visual Studio 2017 社区时,一切都已准备就绪。

    我有一个映射的网络驱动器,我正在同步它作为添加的备份。我想 OneDrive 是类似的。

    【讨论】:

      【解决方案3】:

      如果您还没有裸回购,请打开cmd

      git init --bare "//192.168.9.3/folder/something/projectname.git"

      然后在 VS 中,要么从文件开始一个新的 repo,要么转到存储库设置并添加一个名为(重要)origin 的新远程。 而且位置很简单"//192.168.9.3/folder/something/projectname.git"

      如果没有其他答案中写的所有文件//// 内容,它可以正常工作....

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-08
        • 1970-01-01
        • 2022-11-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多