Измените расположение каталога хранилища Git.

С Git/Github для Windows, если у меня есть репозиторий с этим каталогом: C:\dir1\dir2, что мне нужно сделать, чтобы переместить файлы репо на C:\dir1? Я могу, очевидно, физически скопировать и вставить файлы, но что мне нужно сделать на стороне Git?

У меня есть это репо на GitHub, и я использую Git Bash и GitHub для Windows.

Ответ 1

Просто скопируйте содержимое всего рабочего каталога (включая скрытый каталог .git). Это переместит весь рабочий каталог в новый каталог и не повлияет на удаленный репозиторий на GitHub.

Если вы используете GitHub для Windows, вы можете переместить репозиторий с помощью метода, как указано выше. Однако при нажатии на репозиторий в приложении он не сможет его найти. Чтобы решить эту проблему, просто нажмите на синий круг с помощью!, Выберите "Найти", а затем перейдите в новый каталог.

Ответ 2

Я не уверен в этом вопросе, так что вот два ответа:

Если вы хотите переместить свой репозиторий:

Просто скопируйте весь репозиторий (с его каталогом .git).

Абсолютный путь в структуре .git отсутствует, и ничто не мешает ему перемещаться, поэтому вам нечего делать после перемещения. Все ссылки на github (см. .git/config) будут работать по-прежнему.

Если вы хотите перемещать файлы внутри репозитория:

Просто переместите файлы. Затем добавьте изменения, перечисленные в git status. Следующий commit сделает необходимое. Вы с удовольствием узнаете, что файл не будет дублироваться: перемещение файла в git почти не требует затрат.

Ответ 3

Если вы используете GitHub for Windows, выполните следующие действия:

  • Закройте GitHub for Windows и все другие приложения с открытыми файлами в ваш текущий путь к каталогам.
  • Переместите весь каталог, как указано выше, в новое расположение каталога.
  • Откройте GitHub for Windows и щелкните значок синего (!) "хранилища не найден". Затем откроется диалоговое окно, и вы увидите кнопку "Найти", где вы можете переместить новый путь репозитория.

Ответ 4

В то время как вопрос включает в себя Git для Windows, это, по-видимому, является лучшим результатом даже при поиске Visual Studio Tools для Git (расширение в VS 2012, встроенная поддержка в VS 2013).

Используя приведенные выше решения в качестве руководства, я определил, что Visual Studio Git Tools делает перемещение репозиториев (или даже целую структуру каталогов для всех репозиториев) локально очень легко.

1) Закройте Visual Studio. 2) Переместите папку Repo в новое место. 3) Откройте Visual Studio. Откройте Team Explorer. Переключитесь в режим "Подключить" (значок вилки сверху). 3a) Если Repos все еще показывает старый путь, нажмите "Обновить", чтобы принудительно выполнить обновление. 4) Репозиции, перемещенные локально, больше не должны отображаться в "Локальных Git репозиториях". 5) Нажмите Добавить (не новый или клон) и выберите папку репо для добавления.

На шаге 5 вы действительно просто предоставляете путь поиска, и поиск автоматически включает все подпапки. Если у вас несколько репозиториев, организованных под одним корнем (независимые репозитории, имеющие только одну родительскую папку), то выбор родителя будет включать все найденные ниже репозитории.

Пример: E:\Repos\RepoA E:\Repos\RepoB E:\Repos\RepoC

В Visual Studio Team Explorer [Добавить] > "E:\Repos \" > [Добавить] вернет все три в локальные репозитории.

Ответ 5

Я использую плагин Visual Studio git, и у меня есть некоторые веб-сайты, работающие на IIS, которые я хотел переместить. Простой способ, который работал у меня:

  • Закройте Visual Studio.

  • Переместите код (включая папку git и т.д.)

  • Нажмите на файл решения из нового местоположения

Это обновляет сопоставление с новым местоположением, используя существующие локальные файлы git, которые были перемещены. Когда я вернулся в Visual Studio, мое окно Team Explorer показало repos в новом месте.

Ответ 6

Это не сработало для меня. Я переместил репо из (например,) c:\project1\в c:\repo\project1\и Git для окон не отображается никаких изменений.

git статус показывает ошибку, потому что один из подмодулей "не является хранилищем Git" и показывает старый путь. например (имена изменены для защиты IP)

фатальный: не репозиторий Git: C:/project1/.git/modules/subproject/subproject2 фатальный: 'git status -porcelain' не удалось выполнить подпроект подмодуля

Мне пришлось вручную редактировать .git файлы в подмодулях, указывая на правильный относительный путь к репозиторию подмодуля (в основном каталоге репо .git/modules)