【问题标题】:Rename a folder on server after GIT pullgit pull 后重命名服务器上的文件夹
【发布时间】:2019-07-30 16:13:51
【问题描述】:

我有一个 Web 应用程序,我正在开发并使用 GIT 作为源代码控制。该应用程序由具有不同域的多个客户端使用。它有一个文件夹,我在本地机器上调用了web。但是,同一文件夹在服务器上称为 DOMAIN.NAME,当然,它会因服务器而异。

现在,当我必须使用最新代码更新服务器时,我使用 SSH 并执行 git pull,它会提取服务器上的 web 文件夹,然后将其重命名为对应于服务器的相应 DOMAIN.NAME有问题。但是,我想知道是否有可能以某种方式自动化这个过程?我可以有一个 Git 可以执行的脚本/命令来为我重命名文件夹,或者更好的是,从存储在服务器上的文件中读取一个变量并将相应的文件夹命名为该值吗?我能否以某种方式创建将web 连接到每台服务器上相应文件夹名称的映射?

欢迎提出任何想法,谢谢!

【问题讨论】:

    标签: git rename


    【解决方案1】:

    您可能对 git 挂钩、可以在提交、拉取、推送等事件之前或之后运行的脚本感兴趣:https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

    这是一个 git 钩子的示例,如果出现空格错误,它会停止提交,来自 https://www.atlassian.com/git/tutorials/git-hooks#local-hooks

    #!/bin/sh
    # Check if this is the initial commit
    if git rev-parse --verify HEAD >/dev/null 2>&1
    then
    echo "pre-commit: About to create a new commit..."
    against=HEAD
    else
    echo "pre-commit: About to create the first commit..."
    against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
    fi
    # Use git diff-index to check for whitespace errors
    echo "pre-commit: Testing for whitespace errors..."
    if ! git diff-index --check --cached $against
    then
    echo "pre-commit: Aborting commit due to whitespace errors"
    exit 1
    else
    echo "pre-commit: No whitespace errors :)"
    exit 0
    fi
    

    【讨论】:

      【解决方案2】:

      我认为web 文件夹是您的存储库包含的更广泛目录结构的一部分。 (如果没有,您可以将每个服务器的克隆移动到适当的目录;但我假设您自己想出了这个。)

      因此,在每台服务器上,最轻量级的选项是使DOMAIN.NAME 成为指向web 的符号链接。 (我假设服务器使用 *NIX 风格的操作系统和文件系统。)

      如果由于某种原因不可行,您可以查看 git hooks。

      【讨论】:

        猜你喜欢
        • 2016-06-16
        • 2016-05-22
        • 1970-01-01
        • 1970-01-01
        • 2016-04-15
        • 2023-04-07
        • 2019-02-15
        • 2021-02-26
        • 2023-03-14
        相关资源
        最近更新 更多