Почему необходимо потерять неотслеживаемые файлы при настройке страниц github? - PullRequest
5 голосов
/ 30 июня 2011

Github имеет функцию, где вы можете разместить HTML-страницы. ( Подробности здесь ).

Во всяком случае, я недавно использовал это, чтобы открыть вышеупомянутую страницу. Основные инструкции для этого:

// In order to create a new root branch, first ensure that your working directory is clean by committing or stashing any changes. The following operation will lose any uncommitted files! You might want to run this in a fresh clone of your repo.

$ cd /path/to/fancypants
$ git symbolic-ref HEAD refs/heads/gh-pages
$ rm .git/index
$ git clean -fdx

// After running this you’ll have an empty working directory (don’t worry, your main repo is still on the master branch). Now you can create some content in this branch and push it to GitHub. For example:

$ echo "My GitHub Page" > index.html
$ git add .
$ git commit -a -m "First pages commit"
$ git push origin gh-pages

Так что все прошло хорошо; как было объявлено, мои неотслеживаемые файлы были стерты, но я сделал копию каталога и просто переместил назад то, что было необходимо. Переключение между ответвлениями (я использую SmartGit), по-видимому, не стирает неотслеживаемые файлы.

Однако я заинтересован в расширении моих базовых знаний о Git, и мне интересно, почему это было необходимо, чтобы стереть неотслеживаемые файлы при первой настройке gh-страниц. Я бы подумал, что можно было бы настроить ветку gh-pages, добавить и зафиксировать html-файл и передать его, и все это без ущерба для неотслеживаемых файлов. А потом просто переключитесь обратно на исходную ветку.

Ответы [ 4 ]

4 голосов
/ 30 июня 2011

Лучшая ставка, сделать новый клон и сделать это в этом. Если вы абсолютно должны сделать это в репо, в котором вы сейчас работаете, попробуйте git checkout --orphan gh-pages

3 голосов
/ 30 июня 2011

Вы можете создать ветвь gh-pages без корневого каталога, если отбросите команду git clean и выполните git add <files> вместо git add .. Это будет рабочий процесс:

cd /path/to/fancypants
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
echo "My GitHub Page" > index.html
git add index.html
git commit -a -m "First pages commit"
git push origin gh-pages

Я думаю, что они излагают указания так, как они делают, ради простоты и избегая "фантазии".

1 голос
/ 30 июня 2011

Это потому, что git-страницы предназначены для веб-файлов (например, .html) вместо исходных файлов. Так что эти инструкции говорят вам, как создать полностью чистую ветвь (что в обычном поведении вы не хотите делать) без всех исходных файлов, для размещения только файлов web-serve-able-on-github, html, css, javascript.

Так что, если вы хотите чистить, вы можете сделать это таким образом. Если у вас все в порядке с полностью грязным, вы можете попробовать создать ветку (git branch gh-pages) и нажать ее. Я думаю, что я делал это раньше, и это работало просто отлично, особенно когда я имел дело только с веб-обслуживаемым материалом в репозитории для начала.

0 голосов
/ 30 июня 2011

Проблема была в git clean git clean удаляет любой неотслеживаемый файл из текущего рабочего дерева.

Вы можете настроить .gitignore файлы для неотслеживаемых файлов и оставить флаг -x в стороне. Вы должны взглянуть на manpage для git-clean. Если у вас нет системы Unix: http://linux.die.net/man/1/git-clean

...