从装载的卷git pre-commit复制文件
是否可以使用Git预提交挂钩将文件从装载的卷复制到repo中,以便卷的内容可以与repo的其余部分一起提交从装载的卷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
如果是这样,那么执行此操作的脚本会是什么样子?如果您每次只想将整个装入的文件夹放入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