Как правильно связать репозиторий GitHub с Wamp Server?

Кто-нибудь знает, как связать локальный репозиторий Github с сервером Wamp? Я пытаюсь запустить свой проект с локальным хостом, поэтому я использую Wamp. Всякий раз, когда я запускаю эти команды

cd C:\Users\my\Documents\GitHub\repo

git --work-tree=C:\wamp\www status

(repo — имя репозитория)

чтобы связать их, хотя (как предложил другой пользователь в этой теме Могу ли я объединить свой локальный репозиторий Github с локальной папкой WAMP?), я получаю "fatal: This operation must be run in a work tree."
Другие ответы пользователя также не работают.

На Stack Overflow были похожие вопросы, и я перепробовал все предложенные решения, и ни одно из них не сработало. Некоторые предположили, что мой репозиторий был голым, но я могу делать git add, commit, push, pull, поэтому я не уверен, почему я получаю эту ошибку. Я даже пытался настроить core.bare на false, но все равно получаю ту же ошибку.

Возможно, у меня недостаточно знаний в использовании Github, чтобы понять, почему я получаю эту ошибку, но я был бы признателен за любую помощь.


person user3226932    schedule 07.02.2015    source источник
comment
git status работает? (при выполнении в C:\Users\my\Documents\GitHub\repo)   -  person VonC    schedule 07.02.2015
comment
На всякий случай, можете ли вы протестировать git --work-tree=C:\wamp\www --git-dir=C:\Users\my\Documents\GitHub\repo status?   -  person VonC    schedule 07.02.2015
comment
Привет VonC, спасибо за ответ. Git-статус работает. Другая команда говорит, что мой репозиторий не является репозиторием (фатальный: не репозиторий git)   -  person user3226932    schedule 07.02.2015


Ответы (1)


Учитывая, что git --work-tree=C:\wamp\www --git-dir=C:\Users\my\Documents\GitHub\repo status возвращает:

fatal: not a git repository

Это означает, что C:\Users\my\Documents\GitHub\repo не является допустимым репозиторием git (возможно, в нем нет папки .git или ее путь не распознан должным образом в текущем сеансе оболочки)

Примечание. В зависимости от вашей текущей оболочки вам может потребоваться использовать пути posix.
В git bash shell (в отличие от git-cmd.bat DOS сеанс оболочки):

 git --work-tree=/C/wamp/www --git-dir=/c/Users/my/Documents/GitHub/repo status

Поскольку ошибки были постоянными, ОП пришел к выводу:

закончилось просто клонированием git в каталог www, и теперь это работает.

person VonC    schedule 07.02.2015
comment
В нем есть папка .git. Что это значит, когда это недействительный репозиторий git, если я могу выполнять в нем команды git. Как я могу сделать его действительным репозиторием git? - person user3226932; 08.02.2015
comment
@user3226932 user3226932 ни один из ответов stackoverflow.com/q/18947567/6309 здесь не применим? - person VonC; 08.02.2015
comment
@user3226932 user3226932 git --git-dir=C:\Users\my\Documents\GitHub\repo remote -v возвращает удаленный origin с URL-адресом github.com? - person VonC; 08.02.2015
comment
Пробовал все предложенные решения, включая повторное клонирование репо, но ни одно из них не сработало. Я все еще получаю фатальный: не репозиторий git или фатальный: эту операцию нужно запускать в рабочем дереве. Ваш последний комментарий с удаленным -v вернулся фатальным: не репозиторий git: C: UsersmydocumentsgitHubrepo не уверен, почему исчезли косые черты (я заменил имена моих каталогов на мои и репо для этого комментария). Я делаю все это в своем каталоге репо - person user3226932; 08.02.2015
comment
@ user3226932 вы находитесь в сеансе git bash или в сеансе git-cmd (DOS)? - person VonC; 08.02.2015
comment
@user3226932 user3226932, тогда я отредактировал ответ, чтобы проиллюстрировать путь posix - person VonC; 08.02.2015
comment
попробовал это и с /c/, но безуспешно, все равно фатально: не репозиторий git. - person user3226932; 08.02.2015
comment
Привет, @VonC, я попробовал это снова: статус git --work-tree=/C/wamp/www, и теперь это не приводит к фатальным последствиям: эта операция должна выполняться в рабочем дереве. по какой-то причине теперь он выводит удаленные файлы (все из моего репо), а затем показывает, что находится внутри каталога www (неотслеживаемые файлы). Это должно происходить? Все ли файлы из репо должны быть скопированы в каталог www и не удалены? - person user3226932; 08.02.2015
comment
@user3226932 user3226932 да, использование пользовательского рабочего дерева поможет Git сравнить его содержимое с индексом репозитория git. Если индекс ссылается на файлы, которых нет в рабочем дереве... они будут отображаться как удаленные (в рабочем дереве) - person VonC; 08.02.2015
comment
Можете ли вы предложить решение этой проблемы? У меня все те же проблемы. - person user3226932; 08.02.2015
comment
Не могли бы вы попробовать то же самое, на этот раз с git-cmd.bat. То есть с сеансом dos вместо сеанса bash. - person VonC; 08.02.2015
comment
Получил тот же вывод (список удаленных файлов, когда я делаю git --work-tree=C:\wamp\www статус, а не репозиторий git, когда я делаю git --work-tree=C:\wamp\www --git -dir=C:\Users\my\Documents\GitHub\репозиторий статус ) - person user3226932; 09.02.2015
comment
Это кажется нормальным: дело в том, что у вас больше нет сообщения об ошибке. Если вам нужен тот же контент на www, что и в репозитории, вы можете оформить заказ (с параметрами samo git-dir и work-tree) - person VonC; 09.02.2015
comment
Понимаю. Будет ли git checkout копировать мой репозиторий git в каталог www, и что любые изменения, которые я делаю в моем каталоге репо, будут автоматически обновлять файлы в каталоге www? Какие именно команды я бы использовал? Я пытаюсь сделать отдельную ветку? Я попробовал git checkout -b --work-tree=C:\wamp\www --git-dir=C:\Users\my\Documents\GitHub\repo status, но получаю недопустимое имя ветки и неизвестные ошибки параметров . Спасибо за всю вашу помощь, кстати. Я чувствую, что приближаюсь. - person user3226932; 09.02.2015
comment
Нет, команда будет (сокращенно, потому что я набираю с телефона в поезде) git --work-tree... --git-dir... checkout -- . (Обратите внимание на окончание «--».) - person VonC; 09.02.2015
comment
аааа, это все еще дает мне фатальную ошибку: не ошибка репозитория git, даже если есть каталог .git, и я нахожусь в каталоге репозитория git, и я могу выполнять другие команды git.. - person user3226932; 09.02.2015
comment
Полная команда (поскольку я больше не в поезде): `git --work-tree=C:\wamp\www --git-dir=C:\Users\my\Documents\GitHub\repo checkout -- .` - person VonC; 09.02.2015
comment
Да, это именно то, что я пробовал. я должен делать внутри каталога репо? потому что именно оттуда я выполняю команду. он говорит, что репо по какой-то причине не является репозиторием git... - person user3226932; 09.02.2015
comment
@user3226932 user3226932, если C:\Users\my\Documents\GitHub\repo является репозиторием, то параметр --git-dir должен разрешить выполнение команды. - person VonC; 09.02.2015
comment
закончилось просто клонированием git в каталог www, и теперь это работает. спасибо VonC! - person user3226932; 12.02.2015
comment
@user3226932 отлично! Я включил ваш вывод в ответ для большей наглядности. - person VonC; 12.02.2015