Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从装载的卷git pre-commit复制文件_Git_Bash - Fatal编程技术网

从装载的卷git pre-commit复制文件

从装载的卷git pre-commit复制文件,git,bash,Git,Bash,是否可以使用Git预提交挂钩将文件从装载的卷复制到repo中,以便卷的内容可以与repo的其余部分一起提交 如果是这样,那么执行此操作的脚本会是什么样子?如果您每次只想将整个装入的文件夹放入repo: #!/bin/bash cp -r mountdir .; git add mountdir; 如果每次都要将装入文件夹的内容复制到git repo中,请执行以下操作: #!/bin/bash mntdir="/home/tyssen/mounted" for f in `ls $mntd

是否可以使用Git预提交挂钩将文件从装载的卷复制到repo中,以便卷的内容可以与repo的其余部分一起提交


如果是这样,那么执行此操作的脚本会是什么样子?

如果您每次只想将整个装入的文件夹放入repo:

#!/bin/bash

cp -r mountdir .; git add mountdir;
如果每次都要将装入文件夹的内容复制到git repo中,请执行以下操作:

#!/bin/bash

mntdir="/home/tyssen/mounted"

for f in `ls $mntdir`; do
    cp -r $mntdir/$f .
    git add $f;
done
请注意恐惧,比我更优秀的人可以用globs或
find
改进它。在本地回购协议上为我测试和工作

如前一示例所示复制,但复制到回购协议内部的路径(未测试):


是的,差不多了。我唯一想做的就是将内容复制到回购协议的特定文件夹中。我想我可以将cd/path/to/folder/添加到脚本中,但内容仍然会被复制到repo的根目录中。我测试了
cp
行,但没有测试git部分。谢谢,这是99%的完美。我猜这与你前面提到的ls解析有关,但是在挂载的驱动器上有一个文件夹/_embeds/-该文件夹的内容被复制到repo中的正确文件夹,而不是文件夹本身,所以我最终在我想要复制到的文件夹的根目录中找到了文件,而实际上应该只有文件夹。这很奇怪。我只是这样做:
mkdir-pfoo/\u嵌入;触摸foo/_嵌入/bar foo/_嵌入/baz;mkdir-p zip/bop;cd-zip,然后是
basepath='../foo';cp-r$basepath/$f bop/
,我最终得到了
bar
baz
内部
bop/\u嵌入的
(bop是我在
zip
中的位置),所以它在这里工作。您可以尝试使用
.git/hooks/pre-commit
从您的repo手动运行此脚本,以查看它是否独立工作(或者您已经在这样做了吗?)。是的,我的pre-commit文件包含第二个示例中的内容。
#!/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