IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 使用git对代码进行打包的方法 -> 正文阅读

[开发工具]使用git对代码进行打包的方法

1. 说明

通常我在发布代码的时候会先打tag,然后下载该tag进行发布。实际上tag更多的是用于标记版本以方便管理,git提供了多个打包代码的命令帮助用户发布代码。

2. 打包分支代码

使用 git archive 可以将指定分支的代码进行打包,支持.zip, .tar 和 .tar.gz 格式的代码包,使用这个命令打包的代码只包含当前版本的代码,像log信息之类的并不包含,也不能在目录下使用git 相关的命令。

比如打包 master 分支:

git archive master --format=tar.gz --output=/home/raymond/work/master.tar.gz

默认情况下是.tar 格式压缩包,通过 --format 参数来选择其他格式, --output指定输出的文件名称。

2.1 git archive 命令

其命令格式如下:

git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]
	      [-o <file> | --output=<file>] [--worktree-attributes]
	      [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
	      [<path>…?]

各项参数:

  • --format=<fmt>

Format of the resulting archive: tar or zip. If this option is not given, and the output file is specified, the format is inferred from the filename if possible (e.g. writing to "foo.zip" makes the output to be in the zip format). Otherwise the output format is tar.

  • -l, --list

Show all available formats.

  • -v, --verbose

Report progress to stderr.

  • --prefix=<prefix>/

Prepend <prefix>/ to each filename in the archive.

  • -o <file>, --output=<file>

Write the archive to <file> instead of stdout.

  • --worktree-attributes

Look for attributes in .gitattributes files in the working tree as well (see the section called “ATTRIBUTES”).

  • <extra>

This can be any options that the archiver backend understands. See next section.

  • --remote=<repo>

Instead of making a tar archive from the local repository, retrieve a tar archive from a remote repository. Note that the remote repository may place restrictions on which sha1 expressions may be allowed in <tree-ish>. See git-upload-archive(1) for details.

  • --exec=<git-upload-archive>

Used with --remote to specify the path to the git-upload-archive on the remote side.

  • <tree-ish>

The tree or commit to produce an archive for.

  • <path>

Without an optional path parameter, all files and subdirectories of the current working directory are included in the archive. If one or more paths are specified, only these are included.

3. 带 log 信息打包分支

如果打包时需要将log信息等内容一并打包进目录,那么可以使用 git bundle 命令进行打包。该命令会将指定分支的.git信息一并打包,在解压后的目录下可以正常使用 git 命令进行查看log等操作,但是不能切换分支。

打包分支

git bundle create master.bundle /home/raymond/work/master

解包分支?

git clone master.bundle ./sample_repo -b master

解包时要求存放代码的目录为空目录。

3.1 ?git bundle 命令

git bundle create [-q | --quiet | --progress | --all-progress] [--all-progress-implied] \
                    <file> <git-rev-list-args>
git bundle verify [-q | --quiet] <file>
git bundle list-heads <file> [<refname>...]
git bundle unbundle <file> [<refname>...]

一些工作要求将一台机器上的一个或多个开发分支复制到另一台机器上,但两台机器不能直接连接,因此无法使用交互式 Git 协议(git、ssh、http)。该命令提供对 git fetch 和 git pull 的支持,通过在源机器上将对象和引用打包到存档中,然后在通过某种方式移动存档后使用 git fetch 和 git pull 将它们导入另一个存储库.由于存储库之间不存在直接连接,因此用户必须为目标存储库持有的捆绑包指定基础:捆绑包假定基础中的所有对象都已在目标存储库中。

?各项参数:

  • create <file>

Used to create a bundle named file. This requires the git-rev-list-args arguments to define the bundle contents.

  • verify <file>

Used to check that a bundle file is valid and will apply cleanly to the current repository. This includes checks on the bundle format itself as well as checking that the prerequisite commits exist and are fully linked in the current repository. git bundle prints a list of missing commits, if any, and exits with a non-zero status.

  • list-heads <file>

Lists the references defined in the bundle. If followed by a list of references, only references matching those given are printed out.

  • unbundle <file>

Passes the objects in the bundle to git index-pack for storage in the repository, then prints the names of all defined references. If a list of references is given, only references matching those in the list are printed. This command is really plumbing, intended to be called only by git fetch.

  • <git-rev-list-args>

A list of arguments, acceptable to git rev-parse and git rev-list (and containing a named ref, see SPECIFYING REFERENCES below), that specifies the specific objects and references to transport. For example, master~10..master causes the current master reference to be packaged along with all objects added since its 10th ancestor commit. There is no explicit limit to the number of references and objects that may be packaged.

  • [<refname>…?]

A list of references used to limit the references reported as available. This is principally of use to git fetch, which expects to receive only those references asked for and not necessarily everything in the pack (in this case, git bundle acts like git fetch-pack).

参考链接

Git - git-archive Documentation

Git - git-bundle Documentation

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:25:54  更:2022-05-24 18:27:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:03:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码