git钩子:获取pull后更改的文件列表

oxcyiej7  于 2023-03-11  发布在  Git
关注(0)|答案(2)|浏览(225)

我正在尝试创建一个git钩子来检查仓库中某个特定文件夹是否有更新。假设我对/public文件夹感兴趣。某个同事对该文件夹进行了更改,并且该更改位于master分支上。我仍然没有提取这些更改,继续在master分支上运行git pull。我“我需要一个钩子来打印一条消息,通知对/public文件夹进行了更改。
我猜正确的钩子应该是post-merge,但我不太确定如何检查哪些文件被修改了,因为我们不知道有多少新的提交。如果我能处理git从git pull的输出,那就很简单了,但我不认为钩子能访问触发它们的命令的输出。

bpzcxfmw

bpzcxfmw1#

你可以用diff-tree在最后两个头之间检查更改的文件,比如blow:

git diff-tree -r HEAD@{1} HEAD

如果你不需要提交id,你可以添加--name-only

7cwmlq89

7cwmlq892#

评论太长:我不知道为什么您需要一个钩子来实现自动化,但是如果您只需要信息,您可以这样做
更新假定已更改的原点

git fetch origin

只需检查您的版本和远程版本之间的更改

git diff mybranch origin/mybranch --stat
 file1.txt      |   84 +
 file2.txt      |  156 +-
 file3.txt      |   90 +-
 file4.txt      |  418 ++--

(It git pull --dry-run --verbose显示的信息似乎太少。)

相关问题