模拟git cp,包括名称中带空格的文件

时间:2011-03-11 20:28:06

标签: git cygwin whitespace cp

是的我知道我想要的东西(git cp a b)大约等于

cp -R a b
git add b

但是,这会添加存储库中不存在的文件。我得到的最接近的是

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

几乎可以正常工作,但名称中包含空格的文件存在问题。我使用Cygwin的价值

2 个答案:

答案 0 :(得分:2)

您需要将文件列表与文件名中不存在的字符(即空字符)分开。尝试:

(cd a && git ls-files -z) | (cd b && xargs -0 git add)

答案 1 :(得分:0)

0结合我的尝试和@ Philipp的回答

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