Jak skopiować wszystkie pliki do katalogu z innego oddziału? Mogę wyświetlić listę wszystkich plików w tym katalogu
git ls-tree master:dirname
Następnie mogę skopiować wszystkie pliki indywidualnie
git checkout master -- dirname/filename
Jednak używanie symboli wieloznacznych do tej pory było całkowitą porażką. To nic nie robi:
git checkout master -- dirname/*.png
Chociaż wydaje mi się, że mogę do tego użyć skryptu bash, musi być prostszy sposób, prawda?
git checkout master -- dirname; git add dirname; git commit -c $COMMIT_SHA1 --reset-author;
gdzie$COMMIT_SHA1
może byćbranch_a
i byłby obiektem zatwierdzenia, który ma komunikat zatwierdzenia, który chcesz. Nie wiem od razu, jak programowo określić zatwierdzenie z ostatnią zmianą nadirname
dirname
powyżej, ale także kopiuje wszystkie pliki, które znajdują się w.gitignore
namaster
gałęzi. Masz pomysł, dlaczego tak jest?cherry-pick
. Stosuje zatwierdzenia z innych gałęzi, ale tylko pliki, które zostały zmienione w żądanych zatwierdzeniach.Jeśli w ścieżkach nie ma spacji i jesteś zainteresowany, tak jak ja, tylko plikami o określonym rozszerzeniu, możesz użyć
źródło
git checkout master -- *.c