windows - Git (Windows) - 从 separate-git-dir 存储库克隆失败

标签 windows git clone

这几天我一直在努力寻找这个问题的答案:(

当尝试从使用 --separate-git-dir 初始化的存储库克隆时,任何人都可以确认我在下面的示例中“Git clone”的语法是否正确吗?

如果是这样,这是否适用于 Linux 系统?

在 Windows 上使用 Git(从 GitExtensions224SetupComplete.msi 安装的 git 版本 1.7.6.msysgit.0)我收到一个错误,如下所示,看起来好像“Git 克隆”期望 repo 具有“正常”积分.git 目录

由于 --separate-git-dir 是 msysgit 中的一个相当新的特性,也许克隆命令还不支持它?

F:\>mkdir repo2
F:\>mkdir repo2git
F:\>cd repo2
F:\repo2>call git init --separate-git-dir="..\repo2git\.git"
Initialized empty Git repository in F:/repo2git/.git/
F:\repo2>echo abc >file1.txt
F:\repo2>call git add . -A
F:\repo2>call git commit -m "first"
[master (root-commit) c7e4766] first
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 file1.txt
F:\repo2>cd ..
F:\>call git clone repo2 clone2
Cloning into clone2...
fatal: failed to open 'F:/repo2/objects': No such file or directory

非常感谢您对此有任何见解。

最佳答案

在逐步完成您在此处所做的操作后,您的初始“git init”不正确。您在克隆时遇到问题,因为您的存储库一开始就不正确。这是我所做的:

Travis@CASTLE ~/travtemp
$ git init travis
Initialized empty Git repository in c:/Users/Travis/travtemp/travis/.git/

Travis@CASTLE ~/travtemp
$ ls
repo2  repo2git  travis

Travis@CASTLE ~/travtemp
$ cd travis/

Travis@CASTLE ~/travtemp/travis (master)
$ touch t1

Travis@CASTLE ~/travtemp/travis (master)
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       t1
nothing added to commit but untracked files present (use "git add" to track)

Travis@CASTLE ~/travtemp/travis (master)
$ git add .

Travis@CASTLE ~/travtemp/travis (master)
$ git commit -m "first"
[master (root-commit) d93a0d0] first
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 t1

Travis@CASTLE ~/travtemp/travis (master)
$ git status
# On branch master
nothing to commit (working directory clean)

Travis@CASTLE ~/travtemp/travis (master)
$ cd ..

Travis@CASTLE ~/travtemp
$ git clone travis new
Cloning into new...
done.

Travis@CASTLE ~/travtemp
$ ls
new  repo2  repo2git  travis

还有关于线程 GIT clone repo across local file system 的附加信息

关于windows - Git (Windows) - 从 separate-git-dir 存储库克隆失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7083628/

相关文章:

c++ - 如何使用 C++ 在 Windows 和 Linux 中清除控制台

git - 如何将新项目代码推送到现有 github 存储库中的特定分支?

git - 为什么无论我是否运行 git add,当我切换分支(修改、添加、删除文件)时,git 一直显示我的更改?

java - 如何发送列表的值而不是引用(其中列表是 map 的值)?

c++ - 链接到使用 cygwin 在 Ubuntu 中编译的 .o 文件

c++ - 等待时间过去而不用在C窗口中忙着等待

windows - 从命令行对不同长度的十六进制数进行排序?

git - 什么 GIT 命令序列可以可靠地将工作目录更新到代码的特定分支/标签/提交?

c++ - 如何克隆子类而不重复代码?

java - 浅拷贝和深拷贝示例