Установка WordPress в подкаталог с помощью git, но без использования подмодулей git

Я работаю над локальным хостом для работы с рабочим процессом wordpress с использованием git (на основе поста Mark Jaquith Wordpress Local Dev). Моя файловая структура выглядит так

локальный.dev

  • .git
  • index.php
  • .htaccess
  • wp-config.php
  • local-config.php (игнорируется)
  • содержание/темы/
  • контент/плагины/
  • контент/загрузки/ (игнорируется)
  • ядро/ (ядро WordPress)

Что я хочу сделать, так это взять последнюю версию wordpress с github и поместить ее в core/, чтобы процесс обновления выглядел так:

rm -rf wordpress
svn export http:// core.svn.wordpress.org/trunk/ wordpress
git add --all wordpress
git commit -m 'Upgrade WordPress' wordpress
git push origin master

НО у меня чертовски много времени, чтобы понять, как поместить Wordpress в свой собственный каталог без

  • используя SVN
  • используя git pull в local.dev и перемещая файлы в core/ вручную.

Что мне не хватает?

Спасибо


person kallsey    schedule 09.05.2012    source источник


Ответы (2)


Похоже, вы хотите использовать слияние поддеревьев: http://git-scm.com/book/ch6-7.html

person Andrew Aylett    schedule 11.05.2012

Решение

Как предположил Эндрю, ответ состоял в том, чтобы использовать слияние поддеревьев.

Создание личного репозитория Wordpress

Я использую это как удаленный репозиторий wordpress - diff ветки для diff версий wordpress

#Create new repo as the wordpress parent
mkdir wprepo && cd wprepo
git init
touch README
git add .
git commit -m 'initial commit'

#Add the github mirror as a remote repo
git remote add wordpress git://github.com/markjaquith/WordPress.git

#Get the tags
git fetch -t wordpress

#Merge with the required tag
git merge --squash --no-commit -s recursive -X theirs tags/3.3.2
git commit -m '3.3.2'

Местная разработка

Вернувшись на свою локальную машину, я создал local.dev/ и клонировал в него свое удаленное репозиторий разработки (созданное на веб-сервере с помощью git --bare init). Затем я использовал слияние поддеревьев, чтобы добавить репозиторий WordPress.

#Create new repo as the wordpress parent
mkdir local.dev && cd local.dev

#Clone remote development repo
git clone ssh://gituser@remote_server_domain.com/home/gituser/gitrepo .

#Merge remote wordpress repo into core/
remote add -f core ssh://gituser@remote_server_domain.com/home/gituser/wprepo
git merge -s ours --no-commit core/master
git read-tree --prefix=core/ -u core/master
git commit -m 'merging wprepo into core/'

#Push changes to the remote dev repo
git push origin master

Возможно, есть гораздо более простой способ сделать это (если вы знаете, пожалуйста, скажите мне), но это сработало для меня. Шаги собраны вместе из источников ниже.


Источники

  1. http://jon.smajda.com/2011/07/17/wordpress-and-git/

  2. http://joemaller.com/990/a-web-focused-git-workflow/

  3. http://jasonkarns.com/blog/merge-two-git-repositories-into-one/

person kallsey    schedule 15.05.2012