Начало работы с GitHub и Eclipse (spring source toolsuite 2.7.1) - PullRequest
7 голосов
/ 17 июля 2011

Я новичок в Git и GitHub, поэтому, пожалуйста, потерпите меня. У меня есть пустой репозиторий на GitHub с автоматически созданной веткой (gh-pages), который, как я понимаю, должен использоваться с функциональностью страниц GitHub.

Теперь я хотел бы создать и затмить проект, из которого я мог бы зафиксировать / отправить в этот репозиторий.

Что меня смущает, что я не вижу никакой возможности создать удаленную ветку на github. Я полагаю, что отправка моего источника на gh-страницы не будет хорошей идеей. Кстати, я также не понимаю, почему на страницах GitHub эта функция реализована в виде ветки? Разве ветви не должны быть объединены друг с другом в какой-то момент. Понятно, что бессмысленно сливать страницы github в мой проект. Разве не было бы лучше иметь папку в моем проекте для этой цели.

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


Хорошо, я думаю, что понял это. По сути, вам нужно определить удаленную ссылку, которая не должна существовать заранее.

  1. Создать проект
  2. Team-> Поделиться им с локальным хранилищем
  3. В представлении хранилища (Window-> Show View-> Git-> Repositories) выберите локальное хранилище и щелкните правой кнопкой мыши на пульте дистанционного управления
  4. Выберите новый пульт (настроить push). Введите origin в удаленном имени. Нажмите ОК
  5. Изменить URL. Скопируйте / вставьте ssh uri из github. Выберите протокол ssh (убедитесь, что ключ ssh определен в настройках eclipse SSH и загружен на github)
  6. Теперь последняя часть - добавить Ref Refpping. Нажмите Add .. в разделе сопоставления ссылок на экране. И введите refs /heads / master как в локальных, так и в удаленных филиалах.

Или, может быть, реферы / головы / мастера с обеих сторон не очень хорошая идея :) Я вижу, клонировать репозиторий github, у которого нет ветки gh-pages, проще, поскольку он автоматически создает эту спецификацию удаленной выборки

Спецификация удаленной выборки +refs/heads/*:refs/remotes/origin/*

Может быть, это то, что мне нужно ввести в шаге 6 выше


Хорошо, как оказалось, первоначальная идея "refs /heads / master как в локальной, так и в удаленной ветке" была правильной. Нажатие с этой конфигурацией показывает мои изменения в git hub правильно. Второй вариант, с другой стороны, молча терпит неудачу.

1 Ответ

4 голосов
/ 17 июля 2011

Ветви обычно используются так, как вы описали, но ничто не говорит о том, что они должны использоваться таким образом.Это именно тот способ, которым Github решил управлять содержимым вашей страницы, и он работает довольно хорошо.Это похоже на размещение нескольких репо на одном сервере SVN.

Что касается создания новых репо, если вы создадите репо в github и затем клонируете его, у вас будет локальное пустое репо, которое уже указывает на githubс удаленным именем «происхождение».Это удобный способ начать, так как вам не нужно возиться с добавлением пульта самостоятельно.На данный момент в вашем репо нет коммитов и веток.Когда вы делаете первый коммит, он автоматически устанавливает ветку с именем "master".Я не знаю, как eclipse настроен по умолчанию, но из командной строки с настройками по умолчанию вы должны явно передавать новые ветви на удаленный, иначе они вообще не будут выдвигаться.Т.е. выполнение первого коммита и выполнение git push просто не удастся с сообщением типа «Нет общих ссылок и ни одного не указано; ничего не делать».Вместо этого вы должны git push origin master сказать ему, чтобы он установил ветку "master" в удаленном "origin" (он же github).После этого, просто git push будет работать нормально.

Надеюсь, что прояснит некоторые из ваших путаницы.

...