Предполагая, что s1 отправляется удаленно, сначала синхронизируйте локально:
git fetch origin
Теперь извлекайте s1 локально:
git checkout s1
Извлекайте ветку v1
git checkout v1
Используйте ветку s1, чтобы перебазировать v1:
git rebase s1
Если вы изменяли файлы, которые также изменил s1, у вас, скорее всего, будут конфликты слияния, через которые вам придется проходить.В конце вы получите ветку s1 плюс ваши изменения v1, которые не конфликтовали с изменениями s1.Если вы хотите в одностороннем порядке принять изменения на s1, вы можете сделать следующее:
git rebase -s ours s1
Да ours
кажется сбивающим с толку, но перебазировка является противоположностью слиянию с точки зрения базовой ветви, поэтомупринять изменения от s1
, вы должны использовать ours
.