Domanda

capisco che quando uso git pull --rebase, git sarà riscrivere la storia e muovere le commit locali a verificarsi dopo che tutti i commit nel ramo ho appena tirato da.

Quello che non capisco è come questo possa mai essere una cosa negativa. La gente parla di entrare in a problemi con git pull --rebase dove si può finire con un ramo che altre persone non possono tirare da. Ma io non capisco come sia possibile dal momento che tutto quello che stai facendo è riprodurre i vostri locali, non ancora pubblici, commette in cima al ramo hai tirato da. Allora, qual è il problema c'è?

È stato utile?

Soluzione

E 'solo un problema se hai pubblicato solo (spinto) alcuni dei vostri commit, perché sarebbero più difficili da fondono per altri pronti contro termine che hanno già i commit. Dal momento che la loro SHA1 sono cambiate, Git avrebbe cercato di riprodurre le nuovo su quei pronti contro termine.

Se non avete (spinto uno qualsiasi di questi impegna ancora una volta), ogni rebase dovrebbe essere al sicuro.

Quindi, la questione qui è: sei che che tutti i locali commit si sta rebasing siete ancora in realtà ... locale
? E sei sicuro di che 'git pull --rebase' dopo 'git pull --rebase'?

Se si sta lavorando su un 'ramo privato' (un ramo che non hai mai spinto, ma solo unire o rebase su un ramo pubblico, uno che si spingerà), allora sei sicuro di rebase quel ramo privato ogni volta che si desiderare.

Alla fine, tutto dipende dalla flusso di lavoro merge si è scelto di stabilire .

Altri suggerimenti

Si impegnano a un ramo. Spingere. Unire fino a un altro ramo (dici che stai mantenimento di due linee di base, un ramo di patch e un ramo nuovo sviluppo). Realizzare altri commit sono stati spinti al ramo server di vostro è tracking. tirare --rebase. Improvvisamente hai rifatto ciascuno dei commit contro il nuovo hash -. E distrutto l'unione di impegnarsi

Se nessuno ha tirato da te, e tu non hanno spinto i tuoi commit (prima rebase) in qualsiasi altro luogo, allora si sono teoricamente a posto. Tuttavia, Git è stato progettato per gestire bene si fonde e si possono trovare c'è meno lavoro complessivo se si tira e si fondono, invece di tirare e rebase.

Ricordate che Git è un distribuito sistema di controllo del codice sorgente. Le persone non devono tirare da repository centrale che si sta spingendo a - in determinati flussi di lavoro possono tirare le modifiche direttamente da voi. In questi casi, riscrivere la vostra storia può certamente causare i problemi di cui parli

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top