Github показывает неактуальные коммиты в истории запросов по запросу
Я использую "стандартный" поток, хорошо описанный на этом изображении с Github, а именно:
- Я разветвлял проект SpringFramework.
- Я клонировал разветвленную SpringFramework на мой компьютер.
- Когда я хочу добавить новую функцию, я извлекаю из
origin
, - Затем я создаю ветку, фиксирую изменения, нажимаю на мой
upstream
и создать запрос на извлечение.
Я также хотел бы, чтобы определенные файлы в дереве были изменены в соответствии с моими потребностями (например, правила сборки). Я хочу, чтобы эти изменения присутствовали в upstream
Заголовок и распространяется на вновь созданные филиалы.
В результате github показывает историю всех слияний, которые я сделал до того, как создал ветку (см. Pull # 334). При нажатии на вкладку " Измененные файлы " видно, что она сообщает "2 измененных файла с 141 добавлением и 23 удалениями", однако показанная разница содержит максимум 50 изменений. Я делаю вывод, что эти цифры накапливаются и по сравнению с другими коммитами в показанной истории.
Чего я хочу добиться:
- История изменений в запросе на включение отображает только соответствующие изменения.
- Статистика говорит правду (например, "2 измененных файла с 23 добавлениями и 18 удалениями").
Что я должен изменить в своем потоке и / или в моем хранилище, чтобы удовлетворить потребности? Заранее спасибо.
1 ответ
Самое простое решение, вероятно, состоит в том, чтобы просто перебазировать ваши изменения вне ветви в источнике, которому вы отправляете запрос на получение (вероятно, в master).
git rebase my-feature-branch --onto origin/master <current branch base>
куда my-feature-branch
ветвь, содержащая функцию, для которой вы хотите отправить запрос, и <current branch base>
это коммит, непосредственно предшествующий первому коммиту, который вы хотите в запросе на получение
В будущем вы можете избежать таких беспорядочных коммитов, базируя свои ветки функций на коммитах, которые уже находятся в исходном состоянии, и делая коммиты только на той ветке, которую вы хотите в запросе на извлечение.
Например, чтобы создать новую ветку от origin/master
:
git fetch origin # Make sure origin/master is up to date
git checkout origin/master
git checkout -b "new_branch"
# Now do work on this branch.
# Don't make commits here that you don't want in the pull request