如果特定文件发生更改,如何自动收到警告?

2024-04-23

我有一个 php 项目,当我从另一个存储库中提取并且composer.lock 文件发生更改时,我应该运行composer.phar install --dev。 git 如何自动警告我/询问我是否要运行这个命令?我想某种挂钩可以解决这个问题,但是我如何才能获得有关拉入之前和之后发生的变化的信息呢?


这取决于您在拉动时使用什么选项:

无选项:运行 git fetch 和 git merge

你可以自己写合并后 git hook https://www.kernel.org/pub/software/scm/git/docs/githooks.html#_post_merge:

该钩子由 git merge 调用,当在本地存储库上完成 git pull 时会发生这种情况。该钩子采用一个参数,一个状态标志,指定正在进行的合并是否是挤压合并。这个钩子 不会影响 git merge 的结果,如果由于冲突而合并失败,则不会执行。

这个钩子应该适合你(将其保存为可执行文件.git/hooks/post-merge):

#!/bin/sh

CHANGED=`git diff HEAD@{1} --stat -- $GIT_DIR/../composer.lock | wc -l`
if [ $CHANGED -gt 0 ];
then
    echo "composer.lock has changed!"
    composer.phar install --dev
fi

--rebase :运行 git fetch 和 git rebase

你可以自己写结账后 git hook https://www.kernel.org/pub/software/scm/git/docs/githooks.html#_post_checkout:

更新工作树后运行 git checkout 时会调用此挂钩。该钩子被赋予三个参数:前一个 HEAD 的 ref、新 HEAD 的 ref 以及一个指示签出是分支签出还是文件签出的标志

这个钩子应该适合你(将其保存为可执行文件.git/hooks/post-checkout):

#!/bin/sh

CHANGED=`git diff $1 $2 --stat -- $GIT_DIR/../composer.lock | wc -l`
if [ $CHANGED -gt 0 ];
then
    echo "composer.lock has changed!"
    composer.phar install --dev
fi

UPDATE

Here is 我个人的 git hooks 集 https://github.com/greg0ire/git_template.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果特定文件发生更改,如何自动收到警告? 的相关文章

  • gitosis 要求输入密码

    我已经按照以下说明设置了 gitosis 服务器here http scie nti st 2007 11 14 hosting git repositories the easy and secure way 它对于初始用户来说效果很好
  • 如何在 git 中使用 --work-tree 选项?我不断收到错误消息

    我有一个普通的存储库 其中有一个工作树和一个与工作树位于同一目录中的 git 文件夹 我正在尝试使用以下命令从该位置外部运行 git 命令 git git dir path to repo git work tree path to rep
  • 如何避免获取 .repo/manifest.xml?

    如何避免获取 repo manifest xml 故意修改的 我不想在回购同步期间对其进行修改 我已经做了一个repo init 这一步就完成了 我对manifest xml做了一个小修改 删除了一些同步不需要的项目 当我们进行存储库同步时
  • 没有工作树就无法使用 Git-Windows-git-pull

    我在 Windows 上遇到与 Git 相关的问题 无法从 git 上的存储库中提取更改 我能够添加 提交和推送我的更改 但不能拉取 它给了我一个错误 致命 C Git libexec git core git pull 不能在没有 工作树
  • Heroku上传-预编译资产失败

    我需要帮助 当尝试将我的应用程序上传到heroku时 我收到此错误 有人知道为什么吗 有几个是错的 谢谢 Using rake 10 1 0 Using tlsmail 0 0 1 Using uglifier 2 1 2 Your bun
  • 如何将 git 存储库转换为 Mercurial?

    我一直在使用 git 作为源代码存储库开发 java 应用程序 我想与其他 java 开发人员分享该项目 hg 似乎是他们最常用的 我的问题是如何将 git 存储库转换为 hg 如果我尝试谷歌搜索 将 git 转换为 hg 并且每次搜索命中
  • 如何通过pygit2获取当前签出的Git分支名称?

    这个问题应该与 如何获取Git中当前的分支名称 https stackoverflow com questions 6245570 how to get current branch name in git 获取 git 当前分支 标签名称
  • 以最小的努力在多台计算机之间同步代码

    我希望能够跨多台计算机 准确地说是 3 台 同步源代码和整个项目 我尝试过使用 git 但从来没有获得过无忧无虑的体验 也许是因为我从来没有投入很多精力 所以 我理想中想要的是 能够将文件夹及其所有子文件夹添加到 同步 列表 基本上 一旦我
  • 如何从现有的远程分支创建本地分支?

    我想从现有的远程分支 假设是远程 A 创建一个分支 然后将更改提交到存储库 我已使用以下命令从现有的远程 A 创建本地分支 git checkout remote A git branch master remote A 现在我已经使用以下
  • 撤消 git merge(尚未推送)

    我只是将一些更改提交到我的功能分支之一 feedback tab 然后签出 master 并将它们合并到那里 我实际上打算将它们合并到我的 开发 分支中 现在 master 领先于 origin master 其远程 17 个提交 我还没有
  • git commit 给出错误:空提交集已通过

    当尝试恢复到以前的提交时 我尝试了 git revert no commit 0766c053 HEAD 然而这给出了一个错误 empty commit set passed 问题 该错误是什么意思 以及出了什么问题revert命令 删除
  • 为不同分支部署GitLab页面

    我正在使用 GitLab Pages 部署我的 React 应用程序 并且运行良好 这是我的gitlab ci yml Using the node alpine image to build the React app image nod
  • 使用 Git 和 Eclipse 管理 Android 项目

    我相信我有一个非常常见的问题 它会影响具有多个应用程序版本的开发人员 在我的例子中 我有两个 付费版本和免费版本 为了管理这两个版本 我使用具有 2 个不同分支的同一个 git 项目 免费和付费 然而 我的源代码包名称彼此不同 如预期 并且
  • 使用 git-cvsserver 和 CVS 工作副本获取 commitid 或“git描述”

    我有一些自动化工具可以通过以下方式访问 git 存储库cvs and git cvsserver 我希望这些工具能够看到他们签出的内容的提交 ID 这是否记录在CVS元数据目录 None
  • Git 合并如何处理同时提交?

    给定一个具有两个分支的存储库 每个分支都有独立的提交 Branch Commits final e g i master a b c d f h 上图中的字母很重要 即 master 和 final 同时正在开发中 并且必须保留两个分支中的
  • Git - 忽略对配置文件的特定修改

    我的项目中有一个配置文件 其中包含数据库的连接字符串以及多个应用程序设置 例如
  • 如何从 Visual Studio 2013 将现有解决方案添加到 GitHub

    我浏览了许多关于 VS 2013 中新的 Git 集成的网页 它们不涉及向 Github 添加现有解决方案 事实上 我找不到太多关于使用 GitHub 而不是 Visual Studio Online 的信息 谁能告诉我如何从现有解决方案开
  • 只在一个文件上应用 git merge stategy 吗?

    当将一个分支合并到另一个分支时 可以定义合并策略 例如 git merge release X ours 当将发布分支中的内容合并到当前分支时 这会在全局范围内应用 我们的 策略 是否可以仅对一个特定文件应用此策略 例如 git merge
  • 添加和提交文件后Git推送不起作用

    I m new to Github and Git tried to use gitbash on Windows After adding and committing files If I add the git push cmd Th
  • git push origin master 失败

    我正在尝试将现有文件夹上传到 gitHub 按照说明 我在 Windows 中输入了以下内容 git remote add origin email protected cdn cgi l email protection myname m

随机推荐

  • 如何完全删除 QLayout 的边距(特定于 Mac OS)

    Let me explain a simplified situation In Qt Creator create a QHBoxLayout containing a QPushButton and another QHBoxLayou
  • 在 CakePHP 中向 Containable 添加条件

    以前我依赖递归 但我没有得到一些解决方案 然后我发现 Containable 对于这些问题工作得很好 我正在开发一个电影评论网站 我需要显示与特定类型相关的电影列表 我有下面的代码 example genre drama options a
  • 在 Rails 中扩展 ruby​​ gem

    假设我有一个 Rails 应用程序 它从 gem 例如 CMS 获取大部分功能 如果我现在需要添加一些自定义 例如 向用户添加属性 最佳实践方法是什么 如果我自定义 gem 那么将来更新 gem 时将会遇到问题 这里采取的最佳方法是什么 这
  • 我可以强制 CloudFormation 解析 Secrets Manager 中的值吗?

    在下面 缩写为 CloudFormation 模板 中 我尝试配置 AWS Lambda 函数以从注入其环境的 AWS Secrets Manager 获取值 Resources Function Type AWS Serverless F
  • 如何向pairs()图中添加颜色键?

    Goal 我有一个调整过的pairs情节在R我想为其添加一个颜色键 面板背景位于pairs绘图显示由数字矩阵确定的某些颜色 我想要在右侧有一个颜色键pairs显示这些颜色和一些指示数字的标签的图 我找到了一些添加颜色键的方法image 绘图
  • Android相机无法从后台服务拍照

    我已经实现了一项从后台线程拍照的服务 但照片永远不会在我的任何设备上拍摄 这是代码 下面记录输出 public class PhotoCaptureService extends Service private static final S
  • jQuery,如何通过选中复选框来调用 url

    我有这个 span Facebook span
  • iPhone 5 屏幕高度错误

    我在 3 5 英寸屏幕上开发了一个应用程序 现在我为 4 英寸屏幕制作了一个新的 Storyboard 我喜欢按照以下方式在 appdelegate 上的 Storyboard 之间切换 我记录了屏幕高度 它给了我 480 00000 检查
  • 来自不同框架的扩展方法的名称冲突

    作为测试 我创建了两个框架 两个框架都包含此扩展 public extension UIDevice var extraInfo UIDeviceExtraInfo return UIDeviceExtraInfo public class
  • Python:基于nosetest是否运行的条件变量

    我正在运行鼻子测试 它有一个设置功能 需要加载与生产数据库不同的数据库 我使用的 ORM 是 peewee 它要求在定义中设置模型的数据库 所以我需要设置一个条件变量 但我不知道使用什么条件来检查 nostest 是否正在运行该文件 我在
  • Numpy排列浮点不一致

    我有一个相当简单的 numpy 任务 创建一个长数组 每个元素递增 0 001 当然 np arange就是答案 我将自己限制为默认精度 float64 对结果的一个简单检查是数组的每 1000 个元素应该具有相同的小数部分 我通过绘图检查
  • 如何优化这个 CUDA 内核

    我已经分析了我的模型 似乎该内核约占我总运行时间的 2 3 我一直在寻找优化它的建议 代码如下 global void calcFlux double concs double fluxes double dt int idx blockI
  • 如何在 Linux (Red Hat/CentOS) 上更新到特定 R 版本,并保留以前的版本?

    也许更准确的标题是 如何在 Linux Red Hat CentOS 上从就地 EPEL R 安装切换到并行 特定于版本 R 安装 一个 可能是典型的 在 Linux 上升级 R 的故事 History 在过去的某个时刻 我使用由 RHEL
  • IE 在模态中失去对输入字段的焦点

    我有一个相当复杂的网络应用程序 我已将其压缩为以下两个 HTML 页面 但问题仍然存在 问题 在 IE 8 和 9 中 厚盒模式 iframe 的输入字段在一秒 或更短时间 后失去焦点 它仅在模态中发生 如果您自行加载页面 焦点不会丢失 我
  • 如何为 JavaScript 生成的文本框附加 onclick 事件?

    我有一个表行 其中包含一个文本框 它有一个显示 JavaScript 日历的 onclick 我正在使用文本框向表中添加行 但我不知道如何将 onclick 事件附加到 JavaScript 生成的文本框
  • MyFaces 中的内存泄漏

    编辑 您可以在下面的评论中找到的解决方案假设更改 JSF 实现从 MyFaces 到 太阳的莫贾拉 Hi 我在 MyFaces 2 0 0 上遇到了非常烦人的问题 更准确地说 我也在 2 0 1 和 2 0 2 上检查过它 问题仍然存在 我
  • 如何使用 RDFLib 解析大数据集?

    我正在尝试使用 RDFLib 3 0 解析几个大图 显然它处理第一个图并在第二个图上死掉 MemoryError 看起来 MySQL 不再支持作为存储 您能建议一种以某种方式解析这些图的方法吗 Traceback most recent c
  • 在 Mac OS X 上使用 Python 生成新的非阻塞进程

    我找到了一些文章甚至堆栈 overflow针对这个主题的问题 但我仍然做不到 我想要做的是从 python 打开一个 firefox 实例 那么python应用程序应该继续关注自己的事情并忽略firefox进程 我能够使用以下方法在 Win
  • 如何在R中使用grep匹配表达式的开头和结尾

    我试图用 grep 命令匹配表达式的开头和结尾 但我无法做到这一点 例如 考虑以下表达式 filenames lt c S2abc 6h S2abc 4h S2abc 0h S4abc 6h S2xyz 6h 我想找到所有以 S2 开头并以
  • 如果特定文件发生更改,如何自动收到警告?

    我有一个 php 项目 当我从另一个存储库中提取并且composer lock 文件发生更改时 我应该运行composer phar install dev git 如何自动警告我 询问我是否要运行这个命令 我想某种挂钩可以解决这个问题 但