Git Clone получает GH-страниц, я хочу, чтобы клонировать мастер (от Github) - PullRequest
3 голосов
/ 03 апреля 2012

Однажды я не мог вспомнить, где находился мой основной рабочий каталог для моей папки, поэтому я просто решил клонировать проект с адреса "git@github.com:", который находится на веб-странице github.

Я не знал, что я делал в тот день, и я создал кучу материала в каталоге.Затем я сделал git add, git clone и git push (я забыл как).Но теперь у меня есть эта ветка под названием 'gh-pages' на сайте github.Я действительно хотел бы, чтобы у меня не было этой ветки, но у меня есть.

Сегодня я нашел свой оригинальный каталог, и я создал кое-что в нем сегодня, и сделал несколько «добавок» и некоторые «push».Это пошло к главному 'ответвлению' (которое я ожидал, потому что я как бы потерял надежду на другом странном ответвлении).Но моя проблема теперь такова:

Когда мои пользователи (я сам пробовал это на другой машине) делают клон git, используя адрес, который github дает мне на главной странице моего проекта), они для некоторого странногопричина в конечном итоге с кодом из ветви 'gh-pages'.

Q1: Как мне заставить их сделать клон git, чтобы они могли получить материал, над которым я работал сегодня (который находится в мастереветка).
Q2: как удалить ветку 'gh-pages' с сайта github?Я решил отказаться от него.Если у вас есть лучшее предложение, я тоже восприимчив к этому.Q3: Бонусные баллы, если вы можете сказать мне, что я должен был сделать ранее, как только я понял, что у меня есть два места на моем компьютере, где есть код для двух отдельных веток в моем проекте на github.

Ответы [ 3 ]

6 голосов
/ 03 апреля 2012

Q1: git clone http://remote.url/repo.git -b master
Q2: git push origin :gh-pages, при условии, что origin - это пульт, на котором вы хотите работать.

Кстати, git поставляется с довольно хорошей документацией.Доступ к нему можно получить с помощью

$ git help command

, например

$ git help clone
1 голос
/ 04 апреля 2012

Q1: изменение ветви по умолчанию на master

Исходя из вашего описания, похоже, что ветка по умолчанию установлена ​​на gh-pages вместо master.Чтобы это исправить, войдите в GitHub, нажмите на свой репозиторий, нажмите на кнопку «Администратор» и измените «Ветвь по умолчанию» на master.

. Это означает, что символическая ссылка HEAD в вашем репозитории GitHub будет изменена наукажите refs/heads/master вместо refs/heads/gh-pages.При клонировании хранилища Git просматривает ссылку HEAD удаленного хранилища и использует ее в качестве ветви по умолчанию для проверки.Смотрите мой ответ на другой вопрос для более подробной информации.Обычно HEAD указывает на refs/heads/master в новых пустых репозиториях, но Git (и GitHub) позволяет вам изменить его.

Q2: Удалить ветку gh-pages

gh-pagesветка - это специальная ветка, которую GitHub использует для загрузки контента на страницы проекта .

Чтобы удалить gh-pages из вашего репозитория GitHub:

git push git@github.com:username/repo.git :gh-pages

или:

git push --delete git@github.com:username/repo.git gh-pages

Обратите внимание, что приведенные выше команды удаляют только ветку gh-pages из вашего репозитория GitHub - она ​​не удаляет ветку gh-pages из вашего локального репозитория.Чтобы удалить локальную ветку gh-pages:

git checkout master
git branch -D gh-pages
0 голосов
/ 23 марта 2013

Q3:

Если я правильно понял, у вас есть одно и то же репо, клонированное дважды в двух отдельных папках, и у каждого клона есть отдельная ветка с некоторым полезным кодом.

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

git checkout -b <other-branch-name>

Предполагая, что другая ветвь уже нажата на Github, вы просто тянете ее к той ветке, которую хотите сохранить.

git pull --rebase origin <other-branch-name>

Если вы еще не отправили другую ветку, опубликуйте ее на сервере и загрузите.

git push origin <other-branch-name>

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

git push origin <other-branch-name>:<current-branch>
...