Git (Windows) - ошибка клонирования из отдельного репозитория git-dir - PullRequest
3 голосов
/ 16 августа 2011

Я пытался найти ответ на этот вопрос в течение нескольких дней: (* ​​1001 *

Может ли кто-нибудь подтвердить, правильно ли я понял синтаксис в приведенном ниже примере для «Git clone» при попытке клонировать ОТрепозиторий, который был инициализирован с помощью --separate-git-dir?

Если это так, это работает в системах Linux?

С Git на windows (установлен git версии 1.7.6.msysgit.0из GitExtensions224SetupComplete.msi) Я получаю ошибку, как показано ниже, которая выглядит так, как будто «Git clone» ожидает, что репо будет иметь «нормальный» интегральный .git dir

As --separate-git-dirдовольно недавняя функция в msysgit, может быть, команда clone еще не поддерживает ее?

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

Большое спасибо заранее за любое понимание этого.

1 Ответ

0 голосов
/ 16 августа 2011

После того, как вы проделали то, что вы здесь сделали, ваш начальный '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 клон репо в локальной файловой системе

...