Hexo deploy всегда удаляет все мои предыдущие коммиты

Мне интересно, как правильно использовать Hexo для публикации сообщения на моих страницах Github. Основываясь на учебнике, он выглядит очень простым и понятным, но вызывает у меня сильную головную боль и боль .

Вот мои шаги, которые я выполнил:

hexo new post "my new post"

hexo generate

hexo deploy (это аварийная команда)

После развёртывания hexo все мои предыдущие коммиты будут удалены на моих страницах Github, что я сделал не так? Пожалуйста помоги.

Я связался со службой поддержки GitHub, они просмотрели мою историю Git push и сказали мне, что я принудительно отправляю коммиты, что в конечном итоге приводит к удалению всех моих предыдущих коммитов. Я никогда не замечал этого force толчка. Что пойдет не так?

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

hexo new post "my new post"

git add .

git commit -m "commit message"

git push

Но мой личный сайт вообще не показывает мои новые сообщения. Что я сделал не так?


person Fisher Coder    schedule 28.01.2017    source источник
comment
Каков результат git status 1) после git add и 2) после git commit? Можете ли вы проверить, на что настроено ваше происхождение, с помощью команды git remote -v? Я считаю, что git push автоматически по умолчанию будет использовать источник, если он установлен   -  person jbu    schedule 29.01.2017
comment
Спасибо @jbu, статус git мне кажется нормальным. git remote -v также возвращает мне правильный результат: origin https://github.com/fishercoder1534/fishercoder1534.github.io.git (fetch) origin https://github.com/fishercoder1534/fishercoder1534.github.io.git (push)   -  person Fisher Coder    schedule 29.01.2017


Ответы (2)


Вам необходимо убедиться, что основной репозиторий Git вашего проекта отделен от репозитория развертывания username.github.io. Когда вы hexo deploy зайдете в свою учетную запись username.github.io, она просто отправит все изменения с сообщением фиксации даты/времени вашего развертывания.

person Eric Patrick    schedule 24.05.2017

Я думаю, что проблема связана с вашей конфигурацией развертывания, которая находится в файле _config.yml.

После развёртывания hexo все мои предыдущие коммиты будут удалены на моих страницах Github, что я сделал не так?

Основываясь на вашем описании, я думаю, вы использовали git для управления версиями вашего репозитория проекта hexo, созданного hexo init fishercoder1534.github.io. И затем вы также установили его происхождение как https://github.com/fishercoder1534/fishercoder1534.gi‌​thub.io.git. Следует отметить, что когда вы используете git init для настройки git, он создает master в качестве ветки по умолчанию.

deploy:
  type: git
  repo: https://github.com/fighter3228/fishercoder1534.github.io.git
  branch: master
  message: "Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}"

Снова основываясь на вашем описании, я думаю, что ваша конфигурация развертывания в файле _config.yml должна выглядеть так, как указано выше. Проблема в том, что когда вы снова используете git в том же репо в качестве инструмента развертывания. И что еще хуже, он использует ту же ветку master, которую вы использовали для управления версиями репозитория вашего проекта. Вот почему все ваши предыдущие коммиты были удалены.

Как быстро решить

Если у вас все еще есть репозиторий проекта hexo локально, чтобы вернуть все свои коммиты, вы можете просто выполнить git push -f в репозитории вашего проекта hexo, после чего вы увидите на Github, что все ваши коммиты вернулись.

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

deploy:
  type: git
  repo: https://github.com/fighter3228/fishercoder1534.github.io.git
  branch: gh-pages
  message: "Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}"

Запустите 'hexo g -d', чтобы hexo создал ветку gh-pages для развертывания. Затем github автоматически создаст ваши страницы github из ветки gh-pages, и в то же время вы сможете контролировать версию репозитория проекта hexo в основной ветке.

Чтобы лучше решить эту проблему

Я предлагаю вам создать еще один репозиторий на Github, один репозиторий для управления версиями вашей папки проекта hexo и еще один репо для развертывания ваших страниц github.

person Jinhai ZHOU    schedule 26.09.2017