有没有办法将git中的非分段文件复制到其他位置?

时间:2016-06-22 14:44:20

标签: git shell

我想"采摘" (如果这对它来说是一个好词)只是未分页的文件并将它们复制到另一个目录。我不想要回购中的任何其他文件......只是这些未分级的文件。

是否有git命令或shell + git命令来执行此操作?

更新问题以回答问题:

  • 我想保留文件结构和文件
  • 我对git和shell魔法的任何组合都是开放的

3 个答案:

答案 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中。