繁体   English   中英

Visual Studio GIT 与本地/网络文件夹同步为远程/源

[英]Visual Studio GIT sync with local/network file folder as remote/origin

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

我没有(公司)GIT 服务器,但有一个 Onedrive for Business 帐户,它看起来很完美,至少可以备份 repo,以防狗吃掉机器。 (以后的计划是一旦事情稳定下来,就迁移到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。

经过一些搜索..

我有以下错误:

  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 将成功同步。
    本地文件夹上的 Visual Studio Git 存储库
    如果您(像我一样)先添加了一个错误的位置并且无法再更改它
  4. 在命令行上继续,在本地 git repo/source 文件的文件夹中:

     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

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

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

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

如果您还没有裸仓库,请打开cmd

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

然后在 VS 中,从文件启动一个新的 repo,或者转到存储库设置并添加一个名为 (important) origin的新远程。 而位置就像"//192.168.9.3/folder/something/projectname.git"一样简单

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM