Создание локального git субмодуля - PullRequest
0 голосов
/ 31 марта 2020

Я хочу управлять версией всей моей папки «КЛИЕНТ», которая включает в себя все для моих клиентов, такие как шрифты, стоковые изображения, рисунки, файлы для печати и т. Д. c. Некоторые из этих файлов очень большие, поэтому я не могу загрузить их в удаленное хранилище.

С другой стороны, я хотел бы загрузить их веб-сайт в удаленное хранилище, когда другой разработчик работает над site.

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

Для справки, моя файловая структура проекта выглядит следующим образом:

~ / Документы / Клиенты / Клиент / Проекты / Веб-сайт / 5-Веб-сайт

Клиент = Основная папка проекта 5-Website = Сайт проекта

Я открываю папку основного проекта в Терминале (MacOS) и инициализирую git, используя следующий код

cd ~/Documents/Clients/Client && git init && git config --global user.email 'name@email.com' && git config --global user.name 'Full Name' && git add . && git commit -m 'initial commit, added all files'

До этого момента он работал идеально, и вот где это происходит неправильно.

Затем я (пока я все еще в папке клиента) набираю в Terminal

git submodule add --name website ~/Documents/Clients/TEMPLATE/projects/Website/5-Website

Чтобы попытаться добавить мой субмодуль, но я получаю следующую ошибку:

fatal: repository '/Users/User/Documents/Clients/CLIENT/projects/Website/5-WEBSITE' does not exist
fatal: clone of '/Users/User/Documents/Clients/CLIENT/projects/Website/5-WEBSITE' into submodule path '/Users/User/Documents/Clients/CLIENT/5-WEBSITE' failed

Если вы заметили последнюю часть сообщения об ошибке, он пропускает часть URL-адреса папки только на 5 веб-сайте.

Что такое Я делаю не так?

1 Ответ

0 голосов
/ 31 марта 2020

Выполнив эту команду

cd ~/Documents/Clients/Client && git init && git config --global user.email 'name@email.com' && git config --global user.name 'Full Name' && git add . && git commit -m 'initial commit, added all files'

, вы уже добавили проект Веб-сайта как обычный подкаталог в клиенте основного репозитория.

Один из способов справиться с этим:

  • Удалить каталог .git в главном хранилище и начать все сначала ( см. Примечание ниже перед выполнением этого )
  • Сначала сделайте проект веб-сайта хранилищем git

      # Make website project a git repo
      cd /path/to/website/project
      git init
    
      # Add all files for staging
      git add .
    
      # Commit the changes
      git commit -m "initial commit for website project"
    
      # Push to remote
    
  • Сделайте проект веб-сайта, который теперь является хранилищем git, подмодулем клиентский проект

      # Make client project a git repo
      cd /path/to/client/project
      git init
    
      # Add website project as submodule
      git submodule add --name website /path/to/website/project
    
      # Add all the files in client project for staging
      git add .
    
      # Commit the changes for client project
      git commit -m "initial commit for client project"
    

Обратите внимание, что это предполагает, что вы не сделали никаких изменений, кроме первоначальной фиксации, так как при удалении каталога .git вы потеряете все коммиты и историю. Если вы сделали новые коммиты с момента первоначального коммита, то смотрите this .

Также предполагается, что вы хотите создать локальный подмодуль git. Если вам нужно сделать sh проект веб-сайта для удаленного репо, вы можете заменить это /path/to/website/project на <remote-repo-link> в шаге добавления субмодуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...