Я полный нуб, когда дело доходит до GIT. Я просто делал свои первые шаги за последние несколько дней. Я установил репо на своем ноутбуке, снял Trunk из проекта SVN (у меня были некоторые проблемы с ветками, но они не работали), но там все вроде нормально.
Теперь я хочу иметь возможность вытащить или перенести с ноутбука на мой основной рабочий стол. Причина в том, что ноутбук удобен в поезде, так как я провожу 2 часа в день в пути и могу сделать хорошую работу. Но моя главная машина дома отлично подходит для развития. Поэтому я хочу, чтобы я мог вернуться с ноутбука на основной компьютер, когда вернусь домой. Я подумал, что самый простой способ сделать это - просто разместить папку с кодом в локальной сети и сделать:
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-сервер и т. Д. Это просто для того, чтобы я мог работать в одном репо на двух машинах.
По предложению Себастьяна я получаю следующее:
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
Это сработало отлично.
Спасибо
Ответы:
Вы можете указать URL-адрес пульта, применив UNC- путь к файлу протокола. Для этого необходимо использовать четыре слеша:
Например, если ваш основной компьютер имеет IP 192.168.10.51 и имя компьютера
main
, и у него есть общий ресурс с именем,code
который сам является git-репозиторием, тогда обе следующие команды должны работать одинаково:Если репозиторий Git находится в подкаталоге, просто добавьте путь:
источник
Приведенная выше команда использует запись пути POSIX для каталога с вашим git-репозиторием. Для Windows это (каталог
C:/path/to/repo
содержит.git
каталог):Хранилище будет клонировано для
C:\some\dir\my_project
. Если вы пропуститеfile:///
часть, то--local
подразумевается опция.источник
ответ с именем хоста у меня не сработал, но это сработало:
источник
Мне удалось это сделать с помощью file: //, но с одним дополнительным слешем для обозначения абсолютного пути.
В моем случае я использую Git на Cygwin для Windows, что вы можете видеть из-за части / cygdrive / c в моих путях. С некоторыми изменениями пути он должен работать с любой установкой git.
Добавление пульта работает так же
источник
Может быть, сопоставить общий ресурс как сетевой диск, а затем сделать
В основном просто предположение; Я всегда делаю это с помощью ssh. Конечно, следование этому предложению будет означать, что вам нужно будет подключать этот диск каждый раз, когда вы нажимаете / извлекаете данные из ноутбука. Я не уверен, как вы настраиваете SSH для работы под Windows, но если вы собираетесь делать это много, возможно, стоит исследовать.
источник
cd
в какой-либо другой каталог наZ:
диске. IIRC; Я давно не был пользователем Windows. Также может случиться так, чтоgit
буквы дисков интерпретируются иначе, чем стандартное соглашение Windows. Вы пробовали `Z:`?Не уверен, было ли это из-за моей версии git (1.7.2) или из-за чего, но перечисленные выше подходы с использованием имени компьютера и параметров IP не работали для меня. Дополнительная деталь, которая может / не может быть важной, состоит в том, что репо было голым репо, которое я инициализировал и перенес с другой машины.
Я пытался клонировать project1, как указано выше, с помощью команд, таких как:
и
То, что сработало для меня, было чем-то проще:
Обратите внимание - даже несмотря на то, что репо, клонируемое из, было пустым, это привело к «нормальному» клону со всеми фактическими файлами кода / изображений / ресурсов, на которые я надеялся (в отличие от внутренних элементов git-репо).
источник
Введите абсолютные или относительные пути.
Например, первый из приведенных ниже использует абсолютные пути:
(это находится внутри папки, которая содержит хранилище и резервную копию в качестве подпапок. Также помните, что папка резервной копии не изменяется, если она уже содержит что-либо. и если ее нет, будет создана новая папка)
Следующее использует относительные пути:
источник
Хотя путь UNC поддерживается начиная с Git 2.21 (февраль 2019 г., см. Ниже), Git 2.24 (Q4 2019) позволит
Не более
file:////xxx
, 'file://
' достаточно для ссылки на общий путь UNC.Смотрите " Ошибка Git Fetch с UNC ".
Обратите внимание, что с 2016 года и MingW-64 в
git.exe
комплекте с Git для Windows поддерживается UNC-путь.(См. « Как msys, msys2 и MinGW-64 связаны друг с другом? »)
А в Git 2.21 (февраль 2019 г.) эта поддержка распространяется даже в оболочке msys2 (с кавычками вокруг пути UNC).
См. Коммит 9e9da23 , коммит 5440df4 (17 января 2019 г.) от Johannes Schindelin (
dscho
) . Помогает: Ким Гайбелс (
Jeff-G
) .(Слиты Junio C Hamano -
gitster
- в фиксации f5dd919 , 05 Feb 2019)До Git 2.21, из-за причуды в методе Git для порождения
git-upload-pack
, возникала проблема при прохождении путей с обратными слешами в них: Git проталкивает командную строку через оболочку, которая имеет другую семантику цитирования в Git для Windows (будучи MSYS2 программа), чем обычные исполняемые файлы Win32, такие как онgit.exe
сам.Симптом является то , что первый из этих двух обратных косых черт в UNC путях вида
\\myserver\folder\repository.git
является отгоняет .Это смягчено сейчас:
Видеть
t/t5580-clone-push-unc.sh
источник
После клона пуш не работал.
Решение: в случае клонирования репозитория откройте папку .git и файл конфигурации.
Для удаленного источника URL установите значение:
источник