Как мне скопировать все файлы в каталоге из другой ветки? Я могу перечислить все файлы в этом каталоге, выполнив
git ls-tree master:dirname
Затем я могу скопировать все файлы по отдельности, выполнив
git checkout master -- dirname/filename
Однако использование групповых символов до сих пор было полным провалом. Это ничего не делает:
git checkout master -- dirname/*.png
Хотя я полагаю, что для этого можно использовать скрипт bash, должен быть более простой способ, верно?
git checkout master -- dirname; git add dirname; git commit -c $COMMIT_SHA1 --reset-author;
где$COMMIT_SHA1
может бытьbranch_a
и будет коммит, у которого есть нужное вам сообщение коммита. Я не знаю, как вручную определить, как зафиксировать коммит с последним изменениемdirname
dirname
более, но он также копирует любые файлы , которые находятся в.gitignore
вmaster
отрасли. Есть идеи, почему это так?cherry-pick
. Он применяет коммиты из других веток, но только те файлы, которые были изменены в коммитах, которые вы хотите.Если в путях нет пробелов и вас, как и меня, интересуют только файлы определенного расширения, вы можете использовать
источник
git checkout master -- *.c