Каков наилучший способ скопировать весь проект Jekyll, который я сделал, в отдельный репозиторий git? - PullRequest
0 голосов
/ 24 января 2020

Короче говоря, какое-то время go Я разветвил шаблон Jekyll, чтобы научиться пользоваться фреймворком. Я внёс МНОГИЕ изменения в исходную исходную точку и полностью изменил код, чтобы он стал моим.

Проблема в том, что репозиторий на Github по-прежнему указан как Fork старого шаблона, что мешает мне создание вопросов для отслеживания задач, ошибок, т. д. В идеале я хотел бы взять весь написанный мной код и скопировать его в новый репозиторий и продолжить разработку в этой среде, а не на развилке.

Мой вопрос заключается в реальной механике копирования проекта. Должен ли я просто скопировать всю папку проекта в новую папку, переименовать ее, а затем git init, чтобы начать новое репо? Не следует ли мне скопировать папку .git или любую другую указанную папку c? Есть ли команда командной строки для git или jekyll, которая может упростить это?

Вот каталоги и файлы в проекте:

.bundle/
.git/
.gitignore
.jekyll-cache/
.sass-cache/
_config.yml
_data/
_drafts/
_includes/
_layouts/
_posts/
_sass/
_site/
404.md
about.html
CNAME
Gemfile
Gemfile.lock
homepage.html
images/
index.html
js/
LICENSE
README.md
style.scss
vendor/

Редактировать: я не указал, но сохранение истории git не очень важно для меня (особенно до того, как я разветвился).

Мне также любопытно, будет ли упаковщик работать без каких-либо дополнительных шагов, т. Е. Могу ли я просто запустить bundle exec jekyll serve без каких-либо новых настроек?

Ответы [ 2 ]

1 голос
/ 24 января 2020

Как и многие вещи, «это зависит». Если вас не волнует история, то да, вы можете просто скопировать папку (за исключением личного каталога .git), git init и pu sh в новое местоположение.

Если вы считаете, что сохранение истории было бы полезно, тогда я бы порекомендовал просто git remote remove <remote-name>, добавить новый пульт и pu sh. Существуют и другие варианты сохранения частичной истории (например, с точки, которую вы разветвили), но они немного сложнее, если вам не очень комфортно с Git. Вы можете, например, воспроизвести несколько коммитов на желаемом коммите-источнике, но это почти наверняка требует выполнения сценариев, которые могут быть нетривиальными (я никогда этого не делал, но это должно быть возможно).

Удачи! Я хотел бы видеть историю: D

0 голосов
/ 25 января 2020

Я хочу ответить на вопрос, как я получил скопированный проект для работы, на тот случай, если кто-то хочет сделать это со своим проектом в будущем. Спасибо @PSGuy за общее представление о том, как это сделать.

Моими целями для этого были:

  1. Создать новый репозиторий, который не будет разветвляться из проекта I используется для изучения Jekyll
  2. Сохранение той же функциональности и большей части кода, что и в исходном хранилище
  3. Избавьтесь от моей ОЧЕНЬ загроможденной истории git и разрешите будущим коммитам следовать " Стиль Squa sh и Rebase"для удобства чтения

I не необходимо:

  1. Сохранить мою текущую git историю
  2. Сохранить структуру ветви моего исходного репо

Имея все это в виду, я начал с создания копии всей папки с использованием команда:

cp -r oldRepo/ newRepo/

Затем я вошел в новый каталог и запустил локальный сервер для проекта, чтобы убедиться, что ничего не сломано из коробки. После этого я удалил всю предыдущую git информацию о проекте, запустив:

rm -rf .git/

Затем я сделал несколько небольших изменений в документации и добавил лицензию MIT для проекта. , Со всем на месте я сделал новый пустой репозиторий на Github и скопировал удаленный URL (что-то вроде https://github.com/usrName/myProject.git). Затем из командной строки в новом каталоге я просто инициализировал новое репо git, добавил пульт в github, создал новый коммит и отправил его на удаленный сервер.

git init
git remote add origin https://github.com/usrName/myProject.git
git add .
git commit -m "initial commit"
git push origin master

Оттуда все работает, как задумано, и я могу развиваться дальше.


Следует отметить, что когда вы копируете папку, она создает копию любой ветви, которую вы извлекли в то время по умолчанию. Затем, удалив .git/, вы избавитесь от любой истории проекта, поэтому убедитесь, что это именно то, что вы хотите! Скопированная ветвь станет Master в новом проекте, и другие ветки не будут сохранены, если вы будете следовать этому методу.

...