2013-05-10 49 views
0

是否有可能使用Git pre-commit挂钩将文件从挂载的卷复制到repo中,以便卷的内容可以与repo的其余部分一起提交?从挂载的卷复制文件git pre-commit

如果是这样,脚本会这样做是什么样子?

回答

1

如果你只是想安装文件夹中的整个带进回购每次:

#!/bin/bash 

cp -r mountdir .; git add mountdir; 

如果你想在安装文件夹的每次复制出来的内容到混帐回购协议:

#!/bin/bash 

mntdir="/home/tyssen/mounted" 

for f in `ls $mntdir`; do 
    cp -r $mntdir/$f . 
    git add $f; 
done 

注意可怕的parsing of ls,有人比我更好的球体或find可以改善。经过测试并在本地回购中为我工作。

要复制与前面的例子中,但回购(未经测试)内的路径:

#!/bin/bash 

mntdir="/home/tyssen/mounted" 

for f in `ls $mntdir`; do 
    cp -r $mntdir/$f path/in/repo/ 
    git add path/in/repo/$f; 
done 
+0

是的,这几乎是没有。只有我想要做的是将内容复制到回购的特定文件夹。我想我可以将cd/path/to/folder /添加到脚本中,但内容仍然被复制到回购的根目录中。 – Tyssen 2013-05-10 11:56:25

+0

我添加了一个更新的例子。我测试了'cp'行,但不是git的一部分。 – 2013-05-10 18:35:43

+0

谢谢,这是99%完美。我猜这与你之前提到的ls的解析有关,但是挂载的驱动器上有一个文件夹/ _embeds/- 该文件夹的内容被复制到repo中的正确文件夹,而不是文件夹本身,所以我最终将文件放在我想要复制到的文件夹的根目录下,当时应该只有文件夹。 – Tyssen 2013-05-11 03:52:59