Я новичок в GitHub и VCS в целом. Я программировал на разных языках в течение многих лет, но я всегда работал соло над индивидуальными проектами (никаких публичных выпусков). Недавно я начал использовать виджет jQuery UI, который я скачал с GitHub в проекте, над которым я работаю. Репо больше не поддерживается первоначальным автором. Другая вилка включила в себя некоторые оригинальные запросы на извлечение. Это тот, от которого я раскошелился.
Я нашел пару ошибок и нашел исправления для них. Я хотел бы внести эти исправления, но у меня также есть целый ряд других изменений, которые я хочу внести для нашего собственного использования, которые сломают некоторые из существующих функций. Кроме того, я хотел бы включить идею из другого форка.
Я все еще изучаю GIT и GitHub, и я пытаюсь найти лучший способ сделать все. Я много читал (здесь, на страницах справки по GitHub, Pro Git) о различных концепциях / задачах: рабочие процессы, слияние, запросы на извлечение, выбор вишни, перебазирование, ветвление. Мое серое вещество плавает, и я должен начать делать так, чтобы я мог лучше понять, что я прочитал.
Главные проблемы:
Я думаю, что прочитал (где-то), что вы можете иметь только один запрос на ветку за раз. Значит ли это, что у меня должна быть отдельная ветка для каждой ошибки, а затем я делаю отдельный пул-запрос для каждой ошибки?
Я хочу устранить проблемы с пробелами и, кажется, помню, что читал, что лучше сделать это в отдельном коммите. Должен ли я сделать это в моем мастере или отдельной ветке? Я не хочу делать pull-запрос для чего-то такого тривиального , но если я внесу изменения пробела перед ветвлением, повлияет ли это на pull-запрос для исправления ошибки? Некоторые вилки выполняли очистку пробелов, и это делало разницу довольно бесполезной.
Я думал о создании проблем с моей вилкой как о способе документирования ошибок, даже если у меня уже есть их решение. Это хорошая идея? Как мне связать воедино проблему, коммит и слияние с мастером? Если я сделаю запрос на загрузку в обратном направлении, будет ли также возникать проблема в обратном направлении, или эта ссылка на документацию будет потеряна? Я не могу открыть вопрос против репозитория (нет вкладки).
Какой лучший способ отдать должное другому автору форка за идею его, которую я хочу использовать? Я не могу использовать его код в точности, тем более что его изменение применяется к более старой версии апстрима и не совместимо с другими моими изменениями, как есть. Но я хочу использовать эту идею, и я хочу отдать должное, где кредит должен. Должен ли я просто указать ссылку на его репо (или профиль, или конкретный коммит) в моем сообщении о коммите?
Каков этикет в отношении изменения файла readme и DocBlock в верхней части основного файла? Можно ли вносить изменения, добавлять мое имя, добавлять ссылки в репозиторий и демо-версию, удалять ссылки на исходную демоверсию (поскольку мой форк окажется несовместимым с оригиналом)? Конечно, я оставлю оригинальное имя автора и информацию о лицензии. Для записи, он лицензирован под лицензией MIT.
Как сольный разработчик, который никогда не использовал VCS, я привык переписывать историю . Я перфекционист и люблю, чтобы вещи были опрятными и аккуратными. Идея записанной истории заставляет меня немного нервничать, и я хочу сделать это правильно с первого раза . Я создал новый репозиторий, с которым можно играть / учиться, но мне не терпится приступить к исправлению виджета пользовательского интерфейса jQuery, чтобы я мог продолжить работу над своим проектом.