我有一个远程存储库,我在其中创建了一个git bare repo。 但我希望当我将更改推送到此repo时,git会自动将\ target目录文件夹(working repo)中的.jar放在远程服务器上的特定文件夹中。
我做了这样的后执行钩子:
$ cat > hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/home/ubuntu/www/mydomain.com
export GIT_WORK_TREE
git checkout -f
有了这个,我在该文件夹中有我的工作副本,但现在我想更改它并且只有一个特定的文件:myfile.jar
如何修改此脚本以实现此目的?
答案 0 :(得分:0)
使用git show
能够获取对象的内容,给定commit-ish和该对象的路径名,记录在该commit-ish引用的提交中。它将对象的内容写入标准输出,因此您必须将其重定向到目标文件(将创建和/或覆盖)。
$ cat > hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/home/ubuntu/www/mydomain.com
export GIT_WORK_TREE
git show HEAD:path/to/that.jar >"$TARGETDIR"/that.jar