LINUX.ORG.RU

git squash только моих изменений

 


0

3

Добрый день!

Я разрабатывал в одной ветке, в которую делал git pull и git commit. И теперь мне необходимо объеденить все изменения, которые внес именно я, в один коммит.

$ git log
commit a341a8..
Merge: 95d89a0 1101a10
Author: Me
Date:   Sat Jul 9 10:46:42 2016 +0500

    Merge branch 'master' of ssh://stash.fi into my_branch

commit 95d89..
Author: Me
Date:   Sat Jul 9 10:46:02 2016 +0500

    some of my changes

commit 1101a10..
Author: Other developer
Date:   Fri Jul 8 19:22:11 2016 +0500

    refs #noissue Fobarbar

commit d95a3..
Author: Me
Date:   Fri Jul 8 17:04:35 2016 +0500

    another changes

Если я выполню

git rebase -i HEAD~3
, то и коммит a341a8 (с merge master ветки) окажется в Changes to be committed, другими словами, и чужие изменения попадут в объединенный коммит.

Как быть?



Последнее исправление: helium (всего исправлений: 1)

Можно создать новую ветку и черепикнуть туда все свои коммиты в нужной последовательности (и если нужно, чужой коммит наверх). А потом засквашить свои коммиты в один.

Это первое, что пришло в голову.

EXL ★★★★★
()

делал git pull и git commit

Возможно, стоило делать git pull --rebase.

Если я выполню
git rebase -i HEAD~3
, то и коммит a341a8 (с merge master ветки) окажется в Changes to be committed, другими словами, и чужие изменения попадут в объединенный коммит.

Ничто не мешает этот коммит не брать (удалить строку в интерактивном режиме).

xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.