Эмулируйте git cp, включая файлы с пробелами в именах - PullRequest
1 голос
/ 11 марта 2011

Да, я знаю, что то, что я хочу (git cp ab), приблизительно равно

cp -R a b
git add b

Однако это добавляет файлы, которых нет в хранилище.Самое близкое, что я получил, это

cd a
git ls-files > ../files.txt
cd ../b
cat ../files.txt | xargs git add

почти работает, но есть проблемы с файлами с пробелами в имени.Я использую Cygwin за то, что он стоит

Ответы [ 2 ]

2 голосов
/ 11 марта 2011

Вам необходимо разделить список файлов символом, который не может встречаться в именах файлов, то есть нулевым символом. Попробуйте:

(cd a && git ls-files -z) | (cd b && xargs -0 git add)
0 голосов
/ 11 марта 2011

0Совместно с моей попыткой и @ ответом Филиппа

cp -R a b
cd a
git ls-files -z > ../files.txt
cd ../b
cat ../files.txt | xargs -0 git add
...