Come posso dire a git di ignorare il mio file locale e prendere quello dal mio ramo remoto senza cercare di unire e causare conflitti?
Come posso dire a git di ignorare il mio file locale e prendere quello dal mio ramo remoto senza cercare di unire e causare conflitti?
Risposte:
Questa è la soluzione più sicura:
git stash
Ora puoi fare quello che vuoi senza paura dei conflitti.
Per esempio:
git checkout origin/master
Se si desidera includere le modifiche remote nel ramo principale, è possibile effettuare:
git reset --hard origin/master
Questo ti farà ramificare "master" per puntare a "origin / master".
git stash; git fetch origin; git reset --hard origin/master
git stash
? git stash list
è vuoto.
Capisco la domanda in questo modo: vuoi sostituire completamente il contenuto di un file (o una selezione) dall'upstream. Non si desidera influire direttamente sull'indice (quindi passare attraverso Aggiungi + commit come al solito).
Semplicemente
git checkout remote/branch -- a/file b/another/file
Se si desidera eseguire questa operazione per sottotitoli estesi e si desidera invece influenzare direttamente l'indice, utilizzare
git read-tree remote/branch:subdir/
È quindi possibile (facoltativamente) aggiornare la propria copia di lavoro facendo
git checkout-index -u --force
La mia comprensione è che, ad esempio, hai erroneamente salvato un file che hai aggiornato solo a scopo di test. Quindi, quando esegui "git status" il file appare come "Modified" e dici delle parolacce. Volete solo indietro la vecchia versione e continuare a funzionare normalmente.
In quello scenario puoi semplicemente eseguire il seguente comando:
git checkout -- path/filename
Vorrei controllare il file remoto dal "master" (il repository remoto / di origine) in questo modo:
git checkout master <FileWithPath>
Esempio: componenti principali di checkout git / indexTest.html
Utilizzare l' opzione -s
o --strategy
combinata con l' -X
opzione. Nella domanda specifica, si desidera conservare tutti i file remoti e sostituire i file locali con lo stesso nome.
Sostituisci i conflitti con la versione remota
git merge -s recursive -Xtheirs upstream/master
utilizzerà la versione del repository remoto di tutti i file in conflitto.
Sostituisci i conflitti con la versione locale
git merge -s recursive -Xours upstream/master
utilizzerà la versione del repository locale di tutti i file in conflitto.
git merge -s their
.