Используя информацию из комментария Рудигера и ответа и мои проб и ошибок с ответвлениями, я сделал свои собственные шаги. Эта картинка также помогает с терминологией.
Сначала сделайте эти 2 вещи в любом порядке:
- fork оригинальный проект на сайте github, так что теперь у вас есть оригинал и разветвление. У них одинаковый код и ветви.
- создать локальный репозиторий, указывающий на оригинал репо на github. Допустим, вы решили выбрать только ветку
master
.
- Remotes: вы получите новый пульт, я позвоню
origin
(по умолчанию). настроить его выборку, если это не сделано для вас, спецификация по умолчанию +refs/heads/*:refs/remotes/origin/*
. Эта справочная спецификация отображает все ветки репо на ветки удаленного отслеживания с тем же именем. Если вы хотите получить только ветку master
, используйте +refs/heads/master:refs/remotes/origin/master
.
- Ветви: вы получаете ветку «Remote Tracking» с именем
origin/master
и локальную ветку с именем master
с конфигурацией «Remote: origin» и «Upstream Branch: refs /head / master». Вы будете работать под локальным master
, поскольку сейчас это единственная ветвь.
Теперь вы хотите быть в состоянии продвинуться к своей вилке, чтобы вы могли создать PR. Вы можете и уже использовали оригинал, чтобы получать обновления от работы других людей.
- Щелкните правой кнопкой мыши на "Remotes" и создайте новый пульт, я назову его
fork
(называйте как хотите). Настройте его толчок.
- URI указывает на вашу вилку так же, как
origin
Удаленный URI указывает на оригинал.
- Ref map отображает ветви. Перейдите в «Advanced» и нажмите «Add All Specs Specs», если это не сделано для вас. Вы должны получить спецификацию
refs/heads/*:refs/heads/*
. С этой спецификацией легко работать, но вы можете изменить ее на все, что вам нужно.
- Создайте локальную ветвь (щелкните правой кнопкой мыши -> переключиться на -> новую ветвь), источником которой является локальная ветвь с именем
master
, и имя ветви соответствует тому, что она делает. это может быть ветка master
или новая ветка, которая, скажем, исправляет ошибку, поэтому bug 123
. У вас нет ветки удаленного отслеживания, потому что они используются для вытягивания. Если вы также извлекаете из fork
, вам необходимо настроить это в Remote fork
и получить удаленную ветку.
- Теперь вы работаете в местном филиале
bug 123
(рядом с ним вы можете увидеть галочку). Исправьте ошибку в своем коде, и в представлении Git Staging вы увидите измененные файлы и заголовок <Repository name> [bug 123]
. Убедитесь, что вы собираетесь совершить / нажать на правильную ветку! Подготовьте все, что вам нужно, и зафиксируйте (добавляет изменения в локальную ветку bug123
) и нажмите (создайте ветку в репозитории github с именем bug 123
, если вы остались со спецификацией по умолчанию).
- Теперь перейдите на страницу репозитория GitHub оригинала или форка, и пользовательский интерфейс сообщит вам, что вы можете создать PR. Оттуда GitHub поможет вам.
После того, как PR объединен с master
веткой оригинала на GitHubm, вы захотите извлечь из master
.
- Щелкните правой кнопкой мыши на пульте дистанционного управления
origin
или выберите его «subdir» и выберите выборку. Будут извлекать любые изменения в всех удаленных ветвях, потому что спецификация выборки, которую мы использовали, отображает все ветки (мы использовали символ *
).
Вот и все. Продолжайте переключаться на локальную ветку, которая отображается на вашем форке на основе обновленного master
, исправляйте ошибки, фиксируйте и нажимайте, создавайте PR, ждите слияния с оригиналом, извлекайте и извлекайте из оригинала.