diciamo che il mio collega John ha creato un ramo chiamato "john". Ha 10 committs di John. Quando si tratta di unirsi al master, mi chiedono di fondersi.Come unire un ramo e mantenere la paternità
Questo è quello che faccio
git checkout -b john origin/john
git rebase master
git checkout master
git merge john --squashed
git add .
git commit -m 'merged branch john'
Comunque ora quello che succede è che è la mia id contro il fuse commesso. E più tardi le persone vengono a chiedermi perché ho cambiato parte del codice.
Come faccio a comprimere tutti i membri del ramo john in un commit in modo tale che John sia l'autore. Immagino che git commit interattivo possa aiutare ma non riesco a capirlo.
in modo da poter facilmente eseguire il rollback poiché dopo averlo schiacciato è un singolo commit che deve essere ripristinato. Se non faccio lo squash, saranno 10 i rollback a meno che non ci sia un modo migliore. –
Come indicato nella risposta di mfontani, se unisci --no-ff, verrà registrato un commit di merge e se esegui il rollback di quel commit, avrà lo stesso effetto del rollback di un commit schiacciato, ma con il vantaggio aggiuntivo di registrare anche la cronologia completa del commit. –
un motivo per fare un'unione di squash è che a volte le persone commettono una serie di stati danneggiati nel loro ramo, il che rende il bisect più difficile, ma il ramo finale va bene, ea volte il branch ha comunque un solo autore. – xenoterracide