Flytte eksisterende, ukommittert arbeid til en ny gren i Git
Jeg begynte å jobbe med en ny funksjon, og etter å ha kodet litt, bestemte jeg meg for at denne funksjonen skulle være på sin egen gren.
Hvordan flytter jeg de eksisterende ikke-godkjente endringene til en ny gren og tilbakestiller den nåværende?
Jeg vil tilbakestille den nåværende grenen min mens jeg bevarer eksisterende arbeid på den nye funksjonen.
2970
3
Bruk følgende:
Dette vil la din nåværende gren være som den er, opprette og sjekke ut en ny gren og beholde alle endringene dine. Du kan deretter gjøre en commit med:
og overføre til den nye grenen med:
Endringene i arbeidskatalogen og endringene i indeksen tilhører ikke noen gren ennå. Dette endrer hvor disse endringene vil ende opp.
Du tilbakestiller ikke den opprinnelige grenen, den forblir som den er. Den siste overføringen på `
vil fortsatt være den samme. Derfor
sjekker du ut -b` og deretter overfører.Alternativt:
Lagre gjeldende endringer i et midlertidig lager:
$ git stash
Opprett en ny gren basert på denne stash, og bytt til den nye grenen:
$ git stash branch stash@{0}
Tips: bruk tab-tasten for å redusere inntasting av stash-navnet.
Hvis du begår det, kan du også kirsebærplukke den eneste commit-ID-en. Jeg gjør dette ofte når jeg begynner å jobbe i master, og deretter vil opprette en lokal gren før jeg skyver opp til min opprinnelse / .
Det er mye du kan gjøre med cherry-pick, som beskrevet her, men dette kan være et brukstilfelle for deg.