Ho una filiale locale, stiamo usando git-flow con Pull Requests e sto cercando di schiacciare alcuni commit dopo aver ricevuto feedback PR.Come schiacciare il mio ramo git si commette nello stesso ramo senza ridefinire?
Come posso schiacciare tutti i miei commit (da PR ad esempio) nello stesso ramo?
immagino che sarebbe qualcosa di simile:
git checkout master # For master
git pull # Get all branches up-to-date
git checkout feature1 # Checkout the branch
git checkout -b feature1_squash # Make a copy of the branch
git branch -D feature1 # Delete original branch
git checkout master # (?) Branch off latest master for safety
git checkout -b feature1 # Make new (empty) original branch
git merge --squash feature1_squash # Merge with squash into it
git push -f feature1 # Push, force will be required
ma non sono sicuro.
Con così tanti passaggi sembra anche un buon caso usare una funzione per legare tutto insieme e basta passare il nome del ramo come parametro. Ovviamente automatizzare significherebbe assicurarci di gestire errori, eccezioni, casi limite ecc.
Non voglio usare rebase interattivo perché è un po 'difficile da ottenere per i neofiti che mi alleno. Inoltre, non voglio conoscere il numero di commit, voglio solo fare tutti quelli che esistono su questo ramo.
Non capisco esattamente quello che vuoi. Hai diversi rami con commit diversi su ciascuno e vuoi metterli tutti in un unico commit su un ramo, perdendo così la cronologia dello sviluppo? – houtanb
Ho 1 ramo ('feature1') con diversi commit e voglio che ci sia 1 commit. –