在Windows中跨本地文件系统的GIT克隆repo

Jon*_*Jon 199 windows git git-clone

在谈到GIT时,我是一个完整的Noob.过去几天我一直在迈出第一步.我在我的笔记本电脑上设置了一个repo,从一个SVN项目中拉下了Trunk(有一些分支问题,没有让它们工作),但一切似乎都没问题.

我现在希望能够从笔记本电脑拉到或推送到我的主桌面.原因是笔记本电脑在火车上很方便,因为我每天花2个小时旅行,可以完成一些好的工作.但我家里的主机非常适合开发.因此,当我回到家时,我希望能够从笔记本电脑推/拉到主计算机.我认为最简单的方法是让局域网中的代码文件夹共享,并执行:

git clone file://192.168.10.51/code
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎对我不起作用:

所以我打开一个git bash cmd并输入上面的命令,我在C:\ code(两台机器的共享文件夹)这是我得到的:

Initialized empty Git repository in C:/code/code/.git/
fatal: 'C:/Program Files (x86)/Git/code' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

如何以最简单的方式在两台机器之间共享存储库.

将有其他位置将是官方存储点和其他开发人员和CI服务器等将从中拉出的位置,这样我就可以在两台计算机上处​​理相同的存储库.

根据塞巴斯蒂安的建议,我得到以下内容:

C:\code>git clone --no-hardlinks file://192.168.10.51/code
Initialized empty Git repository in C:/code/code/.git/
fatal: 'C:/Program Files (x86)/Git/code' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

**编辑 - 答案**

感谢所有帮助.我尝试映射一个驱动器,这工作所以我想回去重试没有映射.最终结果是:

git clone file://\\\\192.168.0.51\code
Run Code Online (Sandbox Code Playgroud)

这很有效.

谢谢

pok*_*oke 177

您可以通过将UNC路径应用于文件协议来指定远程URL .这需要你使用四个斜杠:

git clone file:////<host>/<share>/<path>
Run Code Online (Sandbox Code Playgroud)

例如,如果您的主机具有IP 192.168.10.51和计算机名称main,并且它具有名为code其本身是git存储库的共享,则以下两个命令应该同等地工作:

git clone file:////main/code
git clone file:////192.168.10.51/code
Run Code Online (Sandbox Code Playgroud)

如果Git存储库位于子目录中,只需附加路径:

git clone file:////main/code/project-repository
git clone file:////192.168.10.51/code/project-repository
Run Code Online (Sandbox Code Playgroud)

  • git clone //192.168.10.51/code也可以 (7认同)
  • 也可以使用**协议://// user:password @ host:port/path**表示法,例如:**file:/// user:password@192.168.10.51/code** (3认同)
  • 有没有办法用该方案进行身份验证(即用户名/密码)? (2认同)

jfs*_*jfs 124

$ git clone --no-hardlinks /path/to/repo
Run Code Online (Sandbox Code Playgroud)

上面的命令对您的git存储库使用POSIX路径表示法.对于Windows,它是(目录C:/path/to/repo包含.git目录):

C:\some\dir\> git clone --local file:///C:/path/to/repo my_project
Run Code Online (Sandbox Code Playgroud)

存储库将被克隆到C:\some\dir\my_project.如果省略file:///part,则--local隐含选项.

  • 这对我来说适用于带空格的文件路径:git clone -l file://"C:\ SOME PATH\WITH SPACES"my_project (7认同)

小智 14

主机名的答案对我不起作用,但这样做:

git clone file:////home/git/repositories/MyProject.git/

  • 我弄清楚有效的语法的技巧是在文件夹中创建一个txt文件并将其拖动到浏览器中打开.出现文件的右侧URL. (4认同)

Mar*_*rra 7

我使用file://成功完成了这项操作,但是使用了一个额外的斜杠来表示绝对路径.

git clone file:///cygdrive/c/path/to/repository/
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我在Cygwin for Windows上使用Git,你可以看到,因为我的路径中有/ cygdrive/c部分.通过一些调整到路径它应该适用于任何git安装.

添加遥控器的方式相同

git remote add remotename file:///cygdrive/c/path/to/repository/
Run Code Online (Sandbox Code Playgroud)


int*_*ted 6

也许将共享映射为网络驱动器,然后执行

git clone Z:\
Run Code Online (Sandbox Code Playgroud)

大多只是猜测; 我总是使用ssh来做这些事情.以下结果当然意味着每次推/拉笔记本电脑时都需要映射该驱动器.我不确定你是如何装配ssh在windows下工作的,但是如果你要做很多这样的事情,可能值得调查一下.

  • git clone Z :(没有斜线)对我来说非常适合 (2认同)