【问题标题】:Automatically run tasks after Git Clone without using git hooks在 Git Clone 之后自动运行任务而不使用 git hooks
【发布时间】:2017-07-26 12:24:21
【问题描述】:

是否可以在终端内运行git clone ..repo.. 后自动运行 .bash 脚本?起初我想在 post-checkout 钩子中运行像 rm -rf .gitcomposer install 这样的命令,但这个文件只能在本地使用。那么还有其他选择吗?

【问题讨论】:

  • 如果不在本地,您希望它在哪里运行?
  • 它必须在本地运行,但我不想为每个正在克隆项目的用户手动创建文件。

标签: git bash terminal


【解决方案1】:
mkdir ~/global_hooks
#create and edit the post-checkout inside
echo '#!/bin/bash' >> ~/global_hooks/post-checkout
echo 'rm -rf .git' >> ~/global_hooks/post-checkout
#...
chmod 755 ~/global_hooks/post-checkout
git config --global core.hooksPath ~/global_hooks/

任何带有结帐的新克隆(没有-n--mirror--bare)将触发~/global_hooks/post-checkout.git 将被删除。但这不是一个好主意,因为您必须为不同的克隆启用和禁用钩子。另外,每个用户都需要进行配置,所以有点烦人。

更糟糕的是,存储库中的 git-checkout 未禁用或覆盖全局挂钩将删除其 .git。所以这只是为了好玩,根本不实用。

【讨论】:

    【解决方案2】:

    所以,您想要一个 repo 配置为当有人克隆它时,它会立即转身并删除除工作树之外的所有内容(使其不再是 repo 的克隆)?不,git 没有办法做到这一点。

    如果您只是想自动化这些步骤,因为您有一些频繁的用例(可能是一种不寻常的部署机制?),那么您可以编写一个包装脚本来代替git clone 命令运行。

    但是,如果您确实希望由git clone 命令本身触发此操作,那是不可能的。 (它也没有用;但这不关我的事。)

    【讨论】:

      猜你喜欢
      • 2013-08-13
      • 2017-09-30
      • 2019-03-19
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多