git-directory-deploy

deploy a directory as a git branch
授权协议 View license
开发语言 SHELL
所属分类 应用工具、 终端/远程登录
软件类型 开源软件
地区 不详
投 递 者 平山
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

This is a script for deploying generated files to a git branch, such as when building a single-page app using Yeoman and deploying to GitHub Pages. Unlike the git-subtree approach, it does not require the generated files be committed to the source branch. It keeps a linear history on the deploy branch and does not make superfluous commits or deploys when the generated files do not change.

For an example of use, see X1011/verge-mobile-bingo. For development info, see contributing.md.

configuration

Download the script (wget https://github.com/X1011/git-directory-deploy/raw/master/deploy.sh && chmod +x deploy.sh) and edit these variables within it as needed to fit your project:

  • deploy_directory: root of the tree of files to deploy
  • deploy_branch: branch to commit files to and push to origin
  • default_username, default_email: identity to use for git commits if none is set already. Useful for CI servers.
  • repo: repository to deploy to. Must be readable and writable. The default of "origin" will not work on Travis CI, since it uses the read-only git protocol. In that case, it is recommended to store a GitHub token in a secure environment variable and use it in an HTTPS URL like this: repo=https://$GITHUB_TOKEN@github.com/user/repo.git Warning: there is currently an issue where the repo URL may be output if an operation fails.

You can also define any of variables using environment variables and configuration files:

  • GIT_DEPLOY_DIR
  • GIT_DEPLOY_BRANCH
  • GIT_DEPLOY_REPO

The script will set these variables in this order of preference:

  1. Defaults set in the script itself.
  2. Environment variables.
  3. .env file in the path where you're running the script.
  4. File specified on the command-line (see the -c option below).

Whatever values set later in this list will override those set earlier.

run

Do this every time you want to deploy, or have your CI server do it.

  1. check out the branch or commit of the source you want to use. The script will use this commit to generate a message when it makes its own commit on the deploy branch.
  2. generate the files in deploy_directory
  3. make sure you have no uncommitted changes in git's index. The script will abort if you do. (It's ok to have uncommitted files in the work tree; the script does not touch the work tree.)
  4. if deploy_directory is a relative path (the default is), make sure you are in the directory you want to resolve against. (For the default, this means you should be in the project's root.)
  5. run ./deploy.sh

options

-h, --help: show the program's help info.

-c, --config-file: specify a file that overrides the script's default configuration, or those values set in .env. The syntax for this file should be normal var=value declarations. This option must come first on the command-line.

-m, --message <message>: specify message to be used for the commit on deploy_branch. By default, the message is the title of the source commit, prepended with 'publish: '.

-n, --no-hash: don't append the hash of the source commit to the commit message on deploy_branch. By default, the hash will be appended in a new paragraph, regardless of whether a message was specified with -m.

-v, --verbose: echo expanded commands as they are executed, using the xtrace option. This can be useful for debugging, as the output will include the values of variables that are being used, such as $commit_title and $deploy_directory. However, the script makes special effort to not output the value of $repo, as it may contain a secret authentication token.

-e, --allow-empty: allow deployment of an empty directory. By default, the script will abort if deploy_directory is empty.

  • Short story: I want to tell git to ignore a directory when merging. I know git doesn't work that way... Long Story: I have a project that will be deployed on two different platforms. Every platform ne

  • 创建远程个gitHub仓库 打开gitHub网站 https://github.com/ 注册gitHub会员 点击Sign Up 填写用户名,邮箱,密码。填写完成点击Create an account 选择第一个免费,Unlimited public repositories for free.然后点击Continue 创建新仓库 点击顶部右侧头像图标按钮左边的加号 new rep

  • 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。 好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。 不需要从头写.

  • 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。 好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。 不需要从头写.

  • 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。 好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。 不需要从头写.

  • 大家平时在使用GIT的时候,尤其是在Windows平台的时候,一般都不会特别留意跟文件相关的一些问题,比如说 文件权限,大小写问题。 这篇文章将给大家介绍在GIT使用中,关于文件处理的两个问题 文件权限 正常情况下,我们都不用太在乎,甚至不用理会GIT里面文件的权限是否可读,可写,可执行。但如果我们加进GIT的文件是一个可执行的文件,比如一个方便快捷部署的文件deploy.sh. 那么如果没有可执

  • 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。 好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。 不需要从头写.

  • 大家平时在使用GIT的时候,尤其是在Windows平台的时候,一般都不会特别留意跟文件相关的一些问题,比如说 文件权限,大小写问题。 这篇文章将给大家介绍在GIT使用中,关于文件处理的两个问题 文件权限 正常情况下,我们都不用太在乎,甚至不用理会GIT里面文件的权限是否可读,可写,可执行。但如果我们加进GIT的文件是一个可执行的文件,比如一个方便快捷部署的文件deploy.sh. 那么如果没有可执

  •   有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。 好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。 不需要从头

  • 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。 好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。 不需要从头写.

 相关资料
  • 此方法获取系统上当前目录的值。 语法 (Syntax) directory() 参数 (Parameters) 没有 返回值 (Return Value) 此方法获取系统上当前目录的值。 例子 (Example) /* Main program */ options arexx_bifs say directory() 当我们运行上述程序时,我们将得到以下结果。 结果取决于系统到系统。

  • 此类表示索引的存储位置,通常是文件列表。 这些文件称为索引文件。 索引文件通常只创建一次,然后用于读取操作或可以删除​​。 Class 声明 (Class Declaration) 以下是org.apache.lucene.store.Directory类的声明 - public abstract class Directory extends Object implements

  • 主要内容:PHP Directory 简介,安装,PHP 5 Directory 函数PHP Directory 简介 Directory 函数允许您获得关于目录及其内容的信息。 安装 PHP Directory 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。 PHP 5 Directory 函数 函数 描述 chdir() 改变当前的目录。 chroot() 改变根目录。 closedir() 关闭目录句柄。 dir() 返回 Directory 类的实例。 getc

  • WinSCP supports caching directory content. The caching can be configured per-session. To configure it see Directories page of Advanced Site Settings dialog. There are two caches. The first cache store

  • Directory Assistant 是一个用来管理 LDAP 地址簿的工具,使用非常简单。

  • Bitwarden Directory Connector The Bitwarden Directory Connector is a a desktop application used to sync your Bitwarden enterprise organization to an existing directory of users and groups. Supported d