Applicabile per Eclipse Luna + Eclipse Git 3.6.1
IO,
- repository git clonato
- ha apportato alcune modifiche al codice sorgente
- modifiche graduali da Git Staging View
- infine, impegnati e spingi!
E ho affrontato questo problema con EGit ed ecco come l'ho risolto ..
Sì, qualcuno ha eseguito il commit delle modifiche prima che io effettui il commit delle mie modifiche. Quindi le modifiche vengono rifiutate. Dopo questo errore, le modifiche vengono effettivamente salvate nel repository locale. Non volevo solo Pull
le modifiche perché volevo mantenere linear history
come indicato in - In quali casi `git pull` potrebbe essere dannoso?
Quindi, ho eseguito i seguenti passaggi
- dalla prospettiva di Git Repository, fare clic con il pulsante destro del mouse sul
progetto Git in questione
- select
Fetch from Upstream
- recupera gli aggiornamenti remoti (ref e oggetti) ma nessun aggiornamento viene effettuato localmente. per maggiori informazioni fare riferimento Qual è la differenza tra "git pull" e "git fetch"?
- seleziona
Rebase...
- questo apre un popup, fai clic su Preserve merges during rebase
guarda perché
Cosa fa esattamente "rebase --preserve-merges" di git (e perché?)
- clicca su
Rebase button
- se c'è / sono a
conflict(s)
, vai al passaggio 6 altrimenti passaggio 11
Rebase Result
apparirà un popup, basta fare clic suOK
file comparator
si aprirà, è necessario modificare left side file
.
- una volta terminata l'unione delle modifiche correttamente, vai alla
Git Staging
visualizzazione
stage the changes
. cioèadd to index
- nella stessa vista, fare clic su
Rebase
-> Continue
. ripetere da 7 a 10 finché tutti i conflitti non sono risolti.
- dalla
History
vista, seleziona la riga di commit e selezionaPush Commit
- selezionare la
Rebase Commits of local.......
casella di controllo e fare clic su Avanti. fare riferimento al perché - Git: rebase sul ramo di sviluppo dall'upstream
- clicca su
Finish
Nota: se si dispone di più commit del repository locale, è necessario schiacciarli in un commit per evitare più unioni.