/ / Come confrontare le modifiche tra le modifiche locali e il repository remoto - git, github, egit, github-api, jgit

Come confrontare le modifiche tra le modifiche locali e il repository remoto - git, github, egit, github-api, jgit

Voglio sincronizzare le modifiche con un Git remotorepository (su GitHub) che utilizza Git Api in Java (Egit e JGit). Come posso fare questo? Questo è possibile conoscendo l'HEAD ID tra due revisioni, o in qualche altro modo?

risposte:

2 per risposta № 1

Solo conoscendo il HEAD di ciascuno dei due repository è sufficiente a dirlose non sono sincronizzati ma non è abbastanza per dirti quale è più avanti dell'altro. Nel caso generale, più di una persona può spingere su un repository, assumendo che il tuo repository locale sia sempre in anticipo rispetto al tuo remoto Non è saggio, dovresti utilizzare l'API per trovare il primo SHA comune e utilizzare ciò che determina come gestire la sincronizzazione dei tuoi repository. Dovrai gestire tre (molto più) casi:

  1. La tua filiale locale è più avanti del tuo telecomando
  2. Il tuo telecomando è più avanti del tuo locale
  3. Il tuo locale e il tuo remoto hanno entrambi set di commit non sull'altro, ad es., Sei stato spinto da un computer ma non hai tirato qui o qualcun altro ha premuto di recente dei commit e non te ne sei accorto, ecc.

I primi due casi sono banali, il terzo è lontanopiù complesso. Dovrai sempre eseguire il pull prima di poter sincronizzare le modifiche locali con il telecomando e il pull potrebbe causare conflitti di unione. Se non si presta attenzione, è possibile interrompere il codice provando a forzare un commit quando si verifica un conflitto.

Senza sapere di più su cosa pensi di fare o quale sia il tuo caso d'uso esatto, non posso darti molto più aiuto di questo. Spero che questo sia abbastanza :-)