首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将repo中的一个目录的内容复制到repo之外的目录

将repo中的一个目录的内容复制到repo之外的目录
EN

Stack Overflow用户
提问于 2016-04-24 14:22:15
回答 2查看 663关注 0票数 0

我试图改变我的部署工作流程从发送文件通过FTP到git部署。我正在跟踪的帖子。

git --work-tree=/var/www/domain.com --git-dir=/var/repo/site.git checkout -f

问题是上面的命令将整个repo的内容复制到另一个目录。我只需要复制dist目录的内容。我怎样才能做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-24 16:31:41

上面的命令将整个repo的内容复制到另一个目录。

在git术语中,它所做的是检查提交。要查看提交的一部分,您必须告诉它只读取一些已提交的树。

顺便提一句,git不是为部署服务器而构建的。尽管如此,它是足够简单和灵活的,在这里使用它是相当受欢迎和工作相当好。

Git维护一个索引文件,该索引文件将工作树中的内容与回购中的内容联系起来。因此,如果要使用git来管理任意工作树中的内容,则必须为该工作树保留一个索引文件。

代码语言:javascript
复制
(
  # 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是结帐的基础,它根本不关心裁判,甚至连头都不关心;它只关心树和索引。

票数 1
EN

Stack Overflow用户

发布于 2016-04-24 14:25:38

如您所知,裸存储库没有工作目录。

最简单的方法是将存储库克隆到新的位置,并复制文件夹的内容。

代码语言:javascript
复制
# clone the repo
git clone <url>

# Grab the desired folder from the desired branch and that it.

另一个选项是克隆回购,然后将split从所需的文件夹中删除。

subtree split

git subtree git-subtree - Merge子树或split存储库为子树

代码语言:javascript
复制
git subtree split -P <name-of-folder> -b <name-of-new-branch>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36824315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档