Quando il branch in cui stai lavorando viene "superato" dal master, è necessario fare un rebase del master nel tuo branch.
Nel caso che qualcun'altro stia lavorando allo stesso branch, invece di fare la pull, meglio allinearsi all'ultima commit ( o potrebbero esserci dei conflitti )
git reset --hard 71def3d
Sul branch ci si assicura di aver unito ( squash ) tutte le commit in una sola. Se c'è casino si fa il reset all'ultima commit buona es:
git reset 214c0d2
Se, altro esempio, ci si trova nella condizione di aver incluso nello squash delle commit di altri branch
git reset --hard 214c0d2 e si pushano le modifiche allo storico con il -f ( force )
git push origin feature/nomebranch -f
Adesso che la situazione è pulita,
- si fa il checkout sul master
git checkout master
- si portano in locale tutte le modifiche del master
git pull origin master
- si va sul branch da mergiare
git checkout feature/nomebranch
- si fa il rebase del master sul branch
git rebase master
e si pusha la modifica nel branch
git push origin feature/nomebranch -f
git reset 214c0d2