Domanda

C'è un modo per fare in modo che Git imponga una risoluzione manuale per un file quando il file è stato modificato in entrambi i rami?

Il mio problema è che voglio alcune delle modifiche da un ramo e alcune delle modifiche dall'altro. Si scopre che queste modifiche non si fanno sempre un passo l'una sull'altra ma l'algoritmo non seleziona sempre la modifica corretta.

Una cosa che noto è che il file di base nell'unione a 3 vie non è quello che mi aspettavo. È possibile fare in modo che Git usi un file scelto da un ramo come base?

Nessuna soluzione corretta

Altri suggerimenti

Se git rileva conflitti in un file ti chiederà sempre di modificarlo (o usare uno strumento di unione) per correggere i conflitti. In questo caso puoi sistemarlo come preferisci prima di metterlo in scena.

Se git non ha rilevato conflitti in un determinato file ma ha rilevato conflitti altrove, è sempre possibile correggere quel determinato file e aggiungere le correzioni ( git add ) prima di eseguire il commit della fusione.

/ p>

In questo caso è possibile accedere alle due diverse versioni principali del file tramite git show HEAD: percorso / a / file e git show MERGE_HEAD: percorso / a / file . Puoi reindirizzare l'output di git show ai provvisori se vuoi aprirli in un editor, per esempio.

Dopo aver sistemato il file e risolto qualsiasi altro conflitto, è possibile mettere in scena la correzione ( git add ) ed effettuare il merge commit ( git commit ).

Se git non ha rilevato alcun commit, la merge commetterà senza ulteriori prompt.

In questo caso è ancora possibile correggere il file. Le due versioni principali sono accessibili tramite git show HEAD: path / to / file e git show HEAD ^ 2: path / to / file .

Dopo aver sistemato il file, è possibile mettere in scena ( git add ) e ripetere il commit unione con git commit --amend .

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