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 -s
of --strategy
optie in combinatie met de -X
optie. 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.