我想"采摘" (如果这对它来说是一个好词)只是未分页的文件并将它们复制到另一个目录。我不想要回购中的任何其他文件......只是这些未分级的文件。
是否有git命令或shell + git命令来执行此操作?
更新问题以回答问题:
答案 0 :(得分:3)
git ls-files -m | tar Tc - | tar Cx /path/to/other/dir
如果windows不是一个因素,我只用cpio -pd /path/to/other
做tarpipe。
答案 1 :(得分:0)
prefix=/xxx/
git status --porcelain | grep -e "^ M " | while read mark path
do
mkdir -p $prefix/$(dirname "$path")
cp -v "$path" $prefix/"$path"
done
prefix
是备份的根文件夹。
答案 2 :(得分:-1)
如果您对-s
使用--short
,则可以通过精美(瓷器)方式获取文件列表:
$ git status -s
M dir1/file1.py
M dir2/file2.py
那么只需使用process substitution循环遍历此列表:
while IFS=" " read -r _ file; do
echo "$file --" # or whatever "mv" you want to do
done < <(git status -s)
这会使用丢弃变量_
来玷污第一列,其余的存储在$file
中。