Git Vervang de lokale versie met externe versie

Hoe kan ik Git vertellen om mijn lokale bestand te negeren en degene uit mijn afstandsbediening te nemen zonder te proberen samen te voegen en conflicten te veroorzaken?


Antwoord 1, Autoriteit 100%

Dit is de veiligste oplossing:

git stash

Nu kunt u doen wat u wilt zonder angst voor conflicten.

Bijvoorbeeld:

git checkout origin/master

Als u de afstandswijzigingen in de mastertak wilt opnemen, kunt u doen:

git reset --hard origin/master

Hiermee wordt u vertakt “Master” om op te wijzen op “Oorsprong / Master”.


Antwoord 2, Autoriteit 27%

Ik begrijp de vraag als dit: u wilt de inhoud van één bestand (of een selectie) volledig vervangen door stroomopwaarts. U wilt de index niet rechtstreeks beïnvloeden (dus u zou doorgaan met ADD + CITE zoals Usual).

gewoon

git checkout remote/branch -- a/file b/another/file

Als u dit voor uitgebreide subbomen wilt doen en in plaats daarvan de index wilt beïnvloeden, gebruikt u

git read-tree remote/branch:subdir/

U kunt dan (optioneel) uw werkkopie bijwerken door

te doen

git checkout-index -u --force

Antwoord 3, Autoriteit 9%

Mijn begrip is dat je bijvoorbeeld een bestand hebt opgeslagen dat je alleen hebt bijgewerkt voor testdoeleinden. Wanneer u vervolgens “GIT-status” uitvoert, wordt het bestand weergegeven als “gewijzigd” en u zegt enkele slechte woorden. U wilt gewoon de oude versie terug en blijft normaal werken.

In dat scenario kunt u gewoon de volgende opdracht uitvoeren:

git checkout -- path/filename

Antwoord 4, Autoriteit 6%

Ik zou het externe bestand afrekenen van de “Master” (de repository van de afstandsbediening / herkomst) zoals deze:

git checkout master <FileWithPath>

Voorbeeld:
git checkout hoofdcomponenten/indexTest.html


Antwoord 5, autoriteit 3%

Gebruik de -sof --strategyoptie in combinatie met de -Xoptie. In uw specifieke vraag wilt u alle externe bestanden behouden en de lokale bestanden met dezelfde naam vervangen.

Conflicten vervangen door de externe versie

git merge -s recursive -Xtheirs upstream/master  

gebruikt de externe repo-versie van alle conflicterende bestanden.

Conflicten vervangen door de lokale versie

git merge -s recursive -Xours upstream/master

gebruikt de lokale repo-versie van alle conflicterende bestanden.

Other episodes