Czy w Git można pobrać tylko jeden plik?

Pracuję nad gałąź Git, która ma uszkodzone testy i chciałbym ściągnąć (scalić zmiany, a nie tylko nadpisać) te testy z innej gałęzi, w której są już naprawione.

I know I can do

git pull origin that_other_branch

Ale to spróbuje połączyć wiele innych plików, bo nie jestem jeszcze gotowy.

Czy jest mozliwe sciaganie i scalanie tylko podanego pliku (a nie wszystkiego) z tej innej gałęzi?

To nie jest duplikat git pull request za jeden plik ponieważ wszystkie odpowiedzi na to pytanie są takie, jak przywrócić lokalnie zmieniony plik do wersji repozytorium, bez zmiany żadnych gałęzi.

Author: Peter Mortensen, 2013-04-26

3 answers

Możesz pobrać, a następnie sprawdzić tylko jeden plik w ten sposób:

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

Odnośnie polecenia git checkout: <revision> - Nazwa gałęzi, czyli origin/master <yourfilepath> nie zawiera nazwy repozytorium (którą można uzyskać po kliknięciu przycisku copy path na stronie Pliku na Githubie), tj. README.md

 108
Author: aleroot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-01 22:53:30

Oto nieco łatwiejsza metoda, którą wymyśliłem podczas badania tego:

git fetch {remote}
git checkout FETCH_HEAD -- {file}
 206
Author: Chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-01 22:53:55
git checkout master -- myplugin.js

Master = nazwa gałęzi

Myplugin.js = nazwa pliku
 1
Author: Mawardy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-26 14:34:36