Git (Windows) - fejlkloning fra et separat git-dir-depot

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har kæmpet for at finde et svar på dette i dagevis :(


Kan nogen bekræfte, om jeg har syntaksen lige i eksemplet nedenfor for 'Git-klon', når jeg forsøger at klone fra et lager, der blev initialiseret ved hjælp af -separat-git-dir?


Hvis ja, fungerer dette på Linux-systemer?


Med Git på Windows (Git version 1.7.6.msysgit.0 installeret fra GitExtensions224SetupComplete.msi) får jeg en fejl som nedenfor, der ser ud som om 'Git Clone' forventer, at repoen har en 'normal' integreret .git dir


Som -separat-git-dir er en ret nylig funktion i msysgit, måske klon kommandoen endnu ikke understøtter det?


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


Mange tak på forhånd for enhver indsigt i dette.

Bedste reference


Efter at have gennemført det, du gjorde her, er din oprindelige 'git init' ikke rigtig. Du har problemer med at kloning, fordi dit depot ikke var rigtigt at begynde med. Her er hvad jeg gjorde:


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


Der er også yderligere oplysninger om GIT-klonens tråd repo på tværs af det lokale filsystem