2011-03-11 38 views
1

有空格的文件是的,我知道我想要什麼(GIT CP A B)約等於效仿git的CP,包括在名

cp -R a b 
git add b 

但是這增加了不在倉庫裏的文件。我得到的最接近的是

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

幾乎可行,但名稱中帶有空格的文件存在問題。我正在使用Cygwin作爲它的價值

回答

2

您需要用文件名中不能出現的字符(即空字符)分隔文件列表。嘗試:

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

然後可能提交併刪除未跟蹤文件將做到這一點。 – 2011-03-14 17:46:57

+1

如果'cd b'失敗,此代碼可能會中斷。然後沒有人在管道的另一端讀數。 – Philipp 2011-03-14 20:57:41

0

0Combining我嘗試和@菲利普的回答

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

'xargs -0'不是'xargs -o',你可以用'-a'選項避開貓。 – Philipp 2011-03-11 22:15:03