Git pu sh некоторые коммиты из ветки - PullRequest
0 голосов
/ 18 июня 2020

Я создавал feature ветки и объединял их с моей master веткой во время разработки.

Теперь мне нужно sh только определенные feature ветки на другой удаленный пульт, но все они слился с моими master (и другими feature ветками). Что было бы лучше всего для этого?

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Во многих рабочих процессах, как только ветвь feature была снова объединена с master, она удаляется. GitHub, вероятно, является ярким примером этого. Если вы будете следовать этой школе мысли, вы удалите ее и создадите новую функциональную ветку для своего следующего спринта.

Если вы действительно хотите продолжать использовать ветку, вам придется либо перебазировать feature перейти на master или объединить master в feature ветку. Я не вижу никаких преимуществ в перебазировании, которое может быть беспорядочным, поэтому давайте рассмотрим слияние. Вы объединили ветку функции в мастер. Следовательно, мастер уже имеет все функции из ветки функций, но обратное неверно, то есть в ветке функций, вероятно, отсутствуют некоторые функции, которые были введены в мастер. Чтобы выполнить слияние, вы должны использовать эту команду:

git checkout feature
git merge master

Возможно, вам придется разрешить конфликты слияния, возникающие из-за новых функций в master, которых еще нет в ветке функций.

Сейчас ветка feature обновлена ​​до master, и вы можете продолжать ее использовать, если используете sh. Лично я бы просто оставил функциональную ветку там, где она есть, и создал бы совершенно новую функциональную ветку. Вы можете оставить его при себе в течение нескольких спринтов, пока не будете уверены, что удаление безопасно.

0 голосов
/ 18 июня 2020

Изменить:

Если вы слили master с feature-branch, отмените изменения, пока не будет сделана одна фиксация перед слиянием, и создайте новую ветку с git checkout -b undo-merge. Затем используйте git cherry-pick с --skip, чтобы пропустить фиксацию слияния или просто применить все остальные фиксации после этого.

Старый ответ

Вы наверняка не удалили локальные ветки, просто проверьте их и pu sh отдельно:

git branch -a  # lists all branches locally
git checkout feature-branch
git push origin feature-branch  # pushes this branch only to the remote "origin"

Если вы удалили их, вам нужно выяснить фиксацию ha sh, (выполните поиск по количеству с помощью git log и затем проверьте ha sh, создайте новую ветку и снова pu sh:

git checkout "hash"
git checkout -b feature branch
...  # repeat above

надеюсь, что это поможет.

...