2015-07-10 2 views

ответ

3
  1. Создайте файл с именем git-copy.sh со следующим содержанием:

    #!/bin/bash 
    # Target directory 
    TARGET=$3 
    echo "Finding and copying files and folders to $TARGET" 
    for i in $(git diff --name-only $1 $2) 
        do 
         # First create the target directory, if it doesn't exist. 
         mkdir -p "$TARGET/$(dirname $i)" 
         # Then copy over the file. 
         cp "$i" "$TARGET/$i" 
        done 
    echo "Files copied to target directory"; 
    
  2. Выполнить сценарий как команду из корня вашего проекта мерзавца:

    ./git-copy.sh git-hash-1 git-hash-2 path/to/destination/folder 
    

Он скопирует все файлы с одинаковой структурой каталогов в t он папку назначения.

0

Вот небольшой баш (Unix) сценарий, который я написал, что будет копировать файлы для данной фиксации хэш со структурой папок:

ARRAY=($(git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT $1)) 
PWD=$(pwd) 

if [ -d "$2" ]; then 

    for i in "${ARRAY[@]}" 
    do 
     : 
     cp --parents "$PWD/$i" $2 
    done 
else 
    echo "Chosen destination folder does not exist." 
fi 

Создайте файл с именем «~/Scripts/копия фиксации. ш», то дать ему привилегии выполнения:

chmod a+x ~/Scripts/copy-commit.sh 

Тогда из корня репозитория мерзавца:

~/Scripts/copy-commit.sh COMMIT_KEY ~/Existing/Destination/Folder/ 

Чтобы получить последний хэш-код фиксации:

git rev-parse HEAD 
Смежные вопросы