GIT在Windows中跨本地文件系统克隆回购
GIT是一个完整的Noob。 过去几天我一直在采取第一步。 我在我的笔记本电脑上安装了一个回购站,从SVN项目中拉下了Trunk(有一些分支问题,没有让他们工作),但在那里似乎都没问题。
我现在想要能够从笔记本电脑拉到我的主桌面。 原因是笔记本电脑在火车上很方便,因为我每天花两个小时旅行,可以完成一些很好的工作。 但是我家里的主机是非常好的开发。 所以我想在回家的时候能够从笔记本电脑推到主电脑。 我认为这样做最简单的方法就是让代码文件夹在整个局域网中共享,并做到:
git clone file://192.168.10.51/code
不幸的是,这似乎并没有为我工作:
所以我打开一个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
我怎样才能以最简单的方式共享两台机器之间的资料库。
还有其他地方是官方的存储点和其他开发者和CI服务器等将从中拉出来的地方,这样做是为了让我可以在两台机器上进行相同的回购。
根据塞巴斯蒂安的build议,我得到以下几点:
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
**编辑 – 答案**
感谢所有帮助。 我试图映射一个驱动器,所以认为我会回去,没有映射重试。 最终的结果是:
git clone file://\\\\192.168.0.51\code
这很好。
谢谢
您可以通过将UNCpath应用于文件协议来指定远程的URL。 这需要您使用四个斜杠:
git clone file:////<host>/<share>/<path>
例如,如果你的主机具有IP 192.168.10.51和计算机名称main
,并且它有一个本身是git存储库的共享code
,那么下面的两个命令应该同样工作:
git clone file:////main/code git clone file:////192.168.10.51/code
如果Git存储库位于子目录中,只需追加path:
git clone file:////main/code/project-repository git clone file:////192.168.10.51/code/project-repository
$ git clone --no-hardlinks /path/to/repo
上面的命令在你的git仓库中使用POSIXpath符号作为目录。 对于Windows,它是(目录C:/path/to/repo
包含.git
目录):
C:\some\dir\> git clone --local file:///C:/path/to/repo my_project
存储库将克隆到C:\some\dir\my_project
。 如果你省略file:///
part,则隐含 – --local
选项。
主机名的答案不适用于我,但这样做:
git克隆文件:////home/git/repositories/MyProject.git/
也许将共享映射为networking驱动器,然后执行
git clone Z:\
大多只是一个猜测; 我总是用ssh来做这个东西。 之后的提示当然意味着你需要每次从笔记本电脑上拉/拉笔记时都映射这个驱动器。 我不知道你是如何assemblyssh在windows下工作的,但是如果你要这么做的话,这可能是值得研究的。
我使用file://成功地完成了这个工作,但还有一个额外的斜杠来表示绝对path。
git clone file:///cygdrive/c/path/to/repository/
在我的情况下,我在Cygwin for Windows上使用Git,可以看到我的path中有/ cygdrive / c部分。 随着一些调整的path,它应该与任何git安装。
添加遥控器的方式相同
git remote add remotename file:///cygdrive/c/path/to/repository/
不知道是否因为我的git版本(1.7.2)或什么,但上面使用机器名和IP选项列出的方法不适合我。 另外一个/可能不重要的细节是,回购是我从另一台机器初始化并推送到的一个裸回购。
我正在尝试克隆project1上面build议的命令,如:
$ git clone file:////<IP_ADDRESS>/home/user/git/project1 Cloning into project1... fatal: '//<IP_ADDRESS>/home/user/git/project1' does not appear to be a git repository fatal: The remote end hung up unexpectedly
和
$ git clone file:////<MACHINE_NAME>/home/user/git/project1 Cloning into project1... fatal: '//<MACHINE_NAME>/home/user/git/project1' does not appear to be a git repository fatal: The remote end hung up unexpectedly
什么为我工作是简单的:
$ git clone ../git/project1 Cloning into project1... done.
注意 – 尽pipe克隆的repo是裸露的,但是这确实产生了一个“正常的”克隆,它包含了我所希望的所有实际的代码/图像/资源文件(与git repo的内部结构相对)。
input绝对path或相对path。
例如下面的第一个使用绝对path:
(这是从包含版本库的文件夹和作为子文件夹的备份文件夹中获取的,也请记住,如果备份文件夹中已经包含任何内容,则不会修改该文件夹;如果不存在,将会创build一个新文件夹)
~/git$ git clone --no-hardlinks ~/git/git_test1/ ~/git/bkp_repos/
以下使用相对path:
~/git$ git clone --no-hardlinks git_test1/ bkp_repos2/