有空格的文件是的,我知道我想要什麼(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作爲它的價值
有空格的文件是的,我知道我想要什麼(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作爲它的價值
您需要用文件名中不能出現的字符(即空字符)分隔文件列表。嘗試:
(cd a && git ls-files -z) | (cd b && xargs -0 git add)
0Combining我嘗試和@菲利普的回答
cp -R a b
cd a
git ls-files -z > ../files.txt
cd ../b
cat ../files.txt | xargs -0 git add
'xargs -0'不是'xargs -o',你可以用'-a'選項避開貓。 – Philipp 2011-03-11 22:15:03
然後可能提交併刪除未跟蹤文件將做到這一點。 – 2011-03-14 17:46:57
如果'cd b'失敗,此代碼可能會中斷。然後沒有人在管道的另一端讀數。 – Philipp 2011-03-14 20:57:41