我有很多本地提交,其中包含几个修改过的文件。
我需要在推送到存储库后对每个修改过的文件运行一个特定的命令,这必须在客户端本身完成。
如何配置git来做同样的事情?
git log --name-only --format="" --author xxxx origin/master..HEAD | sort | uniq
上面的命令给了我所有提交的文件,但是相对于我的repo的路径。我需要来自root的绝对路径或者相对于我当前目录的路径。
答案 0 :(得分:1)
我需要在推送后修改的每个文件上运行一个特定的命令 到存储库,这必须在客户端本身完成。
您可以使用post-receive
挂钩。
上面的命令为我提供了所有提交的文件但是带有路径 相对于我的回购。我需要从根或绝对路径 一个与我当前目录相关的。
您可以使用readlink
实用程序获取绝对路径。
readlink -f ./relativePath
在您的管道中,使用xargs
,以便将文件路径传递给readlink
:
git log --name-only --format="" --author xxxx origin/master..HEAD | sort | uniq | xargs readlink -f