Is het mogelijk om slechts één bestand in Git op te halen?

Ik werk aan een Git-branch die een aantal defecte tests heeft, en ik zou deze tests willen ophalen (samenvoegen, niet alleen overschrijven) van een andere branch waar ze al zijn gerepareerd.

Ik weet dat ik het kan

git pull origin that_other_branch

maar dit zal proberen om veel andere bestanden samen te voegen, daar ben ik nog niet klaar voor.

Is het mogelijk om alleen het gespecificeerde bestand (en niet alles) uit die andere branch te halen en samen te voegen?

Dit is geen duplicaat van Git pull-verzoek voor slechts één bestandaangezien alle antwoorden op die vraag zijn hoe u het lokaal gewijzigde bestand terugzet naar de repositoryversie, zonder enige vertakkingen te wijzigen.


Antwoord 1, autoriteit 100%

Je kunt op deze manier slechts één bestand ophalen en uitchecken:

git fetch
git checkout -m <revision> <yourfilepath>
git add <yourfilepath>
git commit

Met betrekking tot de opdracht git checkout:

  • <revision>— een filiaalnaam, d.w.z. origin/master
  • <yourfilepath>bevat niet de naam van de repository (die u kunt krijgen door op de knop copy pathop een bestandspagina op GitHub te klikken), dwz README.md

Antwoord 2, autoriteit 92%

Hier is een iets eenvoudigere methode die ik zojuist heb bedacht toen ik dit onderzocht:

git fetch {remote}
git checkout FETCH_HEAD -- {file}

Antwoord 3, autoriteit 22%

git checkout master -- myplugin.js

master = filiaalnaam

mijnplugin.js = bestandsnaam


Antwoord 4, autoriteit 14%

@Mawardy’s antwoord werkte voor mij, maar mijn wijzigingen waren op de afstandsbediening, dus ik moest de oorsprong specificeren

git checkout origin/master -- {filename}

Antwoord 5

Ja, hier is het proces:

# Navigate to a directory and initiate a local repository
git init        
# Add remote repository to be tracked for changes:   
git remote add origin https://github.com/username/repository_name.git
# Track all changes made on above remote repository
# This will show files on remote repository not available on local repository
git fetch
# Add file present in staging area for checkout
git check origin/master -m /path/to/file
# NOTE: /path/to/file is a relative path from repository_name
git add /path/to/file
# Verify track of file(s) being committed to local repository
git status
# Commit to local repository
git commit -m "commit message"
# You may perform a final check of the staging area again with git status

Other episodes