Używam drogę przepływu git zarządzania oddziały w moim repo, jak opisano w: http://nvie.com/posts/a-successful-git-branching-model/git scalić z --no-ff i --squash
Zatem sekwencja poleceń należy używać byłby jako następująco:
git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff mybranch
jednak jest jedna rzecz, którą chciałbym zrobić inaczej, w niektórych przypadkach:
chciałbym zachować wszystkie moje zobowiązuje na mój oddział specjalny (mybranch
), ale mają skoczyli razem (lub zgniecili) do pojedynczego diffa po połączeniu z develop
.
Więc to jest to, co myślę, że sekwencja poleceń powinny być:
git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff --squash mybranch
Czy będę robić rzeczy złe, gdybym połączyć --no-ff
z --squash
?
jestem niezdecydowany spróbować tego się wywodzi, jak „tępienia” i „zachowanie historii” są wymagania ortogonalne - patrz Squashing all of my commits (including merges) into one commit without altering history
Moje uzasadnienie jest, że chcę, aby zachować historię na jednej gałęzi (mybranch
) i suqash na inny oddział (develop
) -> ponieważ te działania są wykonywane w oddzielnych oddziałach, to jest OK.
Dlaczego nie można po prostu spróbować. Zawsze możesz wykonać twardy reset, jeśli nie działa. Zrób tymczasowy oddział w starym miejscu. Trwać. Spróbuj. Wiesz, że chcesz ... –