Domanda

Qual è il modo migliore per risolvere un conflitto quando si esegue un git svn rebase e il ramo git in cui ci si trova diventa " (no-branch) " ;?

È stato utile?

Soluzione

Puoi usare git mergetool per visualizzare e modificare i conflitti nel solito modo. Una volta che sei sicuro che i conflitti sono stati risolti, fai git rebase --continue per continuare il rebase, o se non vuoi includere quella revisione fai git rebase --skip

Altri suggerimenti

Mentre esegui un git svn rebase , se hai conflitti di unione qui ci sono alcune cose da ricordare:

1) Se succede qualcosa di brutto durante l'esecuzione di un rebase finirai su un ramo (no-branch) .

2) Se esegui git status , vedrai un file .dotest nella tua directory di lavoro. Questo è sicuro da ignorare.

3) Se si desidera interrompere il rebase, utilizzare il comando seguente. 1

git rebase --abort

4) In caso di conflitto di unione:

  1. Modifica manualmente i file per risolvere i conflitti
  2. Metti in scena le modifiche con git add [file]
  3. Continua il rebase con git rebase --continuue 2
    • Se git chiede: " hai dimenticato di chiamare git add ? " ;, quindi le modifiche hanno trasformato il conflitto in una modifica no-op 3 . Continua con git rebase --skip

Potrebbe essere necessario ripetere questo processo fino al completamento del rebase. In qualsiasi momento puoi git rebase --abort per annullare e abbandonare il rebase.


1: non esiste alcuna opzione --abort per git svn rebase .

2: Non esiste l'opzione --continuue per git svn rebase .

3: Questo è molto strano, ma i file sono in uno stato in cui git pensa che siano gli stessi dopo quella particolare patch. La soluzione è "saltare".  quella patch sul rebase.

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