Перемещение репозитория git



этот вопрос может быть глупым, но мне было интересно это на некоторое время. Речь идет о репозиториях git, но я предполагаю, что это то же самое для локальных репозиториев для других DVCS.



допустим, мой проект выглядит так, когда он начинается:




    • .ГИТ

    • все остальные папки в проекте


Так вот как это будет работать, когда вы установите его правильно?



допустим, я перемещаю проект папка где-то еще, мне нужно будет что-то изменить? Или все вещи в хранилище .папка git относится только к папке проекта, игнорируя все дерево файлов над проектом.



Я уверен, что перемещение проекта не будет иметь значения, но я просто хотел убедиться.

495   5  

5 ответов:

Да, все в .git относительна. Если вы добавили репозиторий в качестве именованного удаленного в другой репозиторий, вам придется изменить удаленный URL-адрес в этом другом репозитории.

я обнаружил, что подмодули не являются относительными в git.

Итак, если вы хотите переместить проект, содержащий подмодули, вы должны отредактировать .git файл в подмодуле, а также атрибут "worktree" в файле конфигурации подмодуля, который хранится в Родительском .

показать текущий пульт дистанционного управления (это необязательный шаг, конечно):

$ git remote show origin
* remote origin
URL: git@oldserver:project.git
Remote branch(es) merged with 'git pull' while on branch master
master
Tracked remote branches
master

что нам нужно сделать, это удалить текущий источник и добавить новый:

$ git remote rm origin
$ git remote add origin git@newserver:project.git
$ git remote show origin
* remote origin
URL: git@newserver:project.git
Remote branch(es) merged with 'git pull' while on branch master
master
error: refs/remotes/origin/HEAD points nowhere!
New remote branches (next fetch will store in remotes/origin)
master

не беспокойтесь об ошибке, показанной последней командой. Первый рывок из источника исправит это:

$ git pull
From git@newserver:project.git
* [new branch]      master     -> origin/master
Already up-to-date.
$ git remote show origin
* remote origin
URL: git@newserver:project.git
Remote branch(es) merged with 'git pull' while on branch master
master
Tracked remote branches
master

Я все еще свеж с Git так что, возможно, thre это лучший способ сделать это, но это сработало для меня.

нет,вам не придется ничего менять. То есть

  • предполагая, что никакие скрипты не задают git_dir, GIT_WORKTREE или git_index напрямую (маловероятно)
  • у вас нет внешних репозиториев, указывающих на эту копию

    • Если вы это сделаете, вам придется repoint С помощью

      git remote set-url [--push] origin user@yourhost:/home/user/newlocation/Project
      

(origin должно быть имя удаленного устройства; origin-имя по умолчанию при клонировании из удаленного РЕПО)

вы можете переместить каталог git с одной машины на другую или сказать, что вы хотите перенести папку проекта.

вся информация о происхождении хранится в '.папка git', которая создается при инициализации репозитория git в каталоге вашей системы.

процедура

  1. : переместить папку проекта в другое место.
  2. : если папка проекта перемещается на новую машину, то создайте соответствующий SSH пара ключей.
  3. : скажите git, кто вы используете: git config --global пользователь.электронная почта "your_git_email_id@youremail"

Comments

    Ничего не найдено.