我试图改变我的部署工作流程从发送文件通过FTP到git部署。我正在跟踪这的帖子。
git --work-tree=/var/www/domain.com --git-dir=/var/repo/site.git checkout -f
问题是上面的命令将整个repo的内容复制到另一个目录。我只需要复制dist目录的内容。我怎样才能做到这一点?
发布于 2016-04-24 16:31:41
上面的命令将整个repo的内容复制到另一个目录。
在git术语中,它所做的是检查提交。要查看提交的一部分,您必须告诉它只读取一些已提交的树。
顺便提一句,git不是为部署服务器而构建的。尽管如此,它是足够简单和灵活的,在这里使用它是相当受欢迎和工作相当好。
Git维护一个索引文件,该索引文件将工作树中的内容与回购中的内容联系起来。因此,如果要使用git来管理任意工作树中的内容,则必须为该工作树保留一个索引文件。
(
# git ordinarily finds these for itself, but we're not using default behavior:
export GIT_DIR=/var/repo/site.git
export GIT_INDEX_FILE=$GIT_DIR/domain.com.index
export GIT_WORK_TREE=/var/www/domain.com
git read-tree -um `git write-tree` HEAD:dist # or master:dist, or any tree reference
)git write-tree为您提供索引中当前列出的任何内容的树(一个空的或不存在的文件工作得很好,就像一个“nothing‘works”索引一样)。有两棵树的git read-tree -um是结帐的基础,它根本不关心裁判,甚至连头都不关心;它只关心树和索引。
发布于 2016-04-24 14:25:38
如您所知,裸存储库没有工作目录。
最简单的方法是将存储库克隆到新的位置,并复制文件夹的内容。
# clone the repo
git clone <url>
# Grab the desired folder from the desired branch and that it.另一个选项是克隆回购,然后将split从所需的文件夹中删除。
subtree split
git subtreegit-subtree-Merge子树或split存储库为子树
git subtree split -P <name-of-folder> -b <name-of-new-branch>

https://stackoverflow.com/questions/36824315
复制相似问题