首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何压缩和忽略.gitignore指定的所有文件

如何压缩和忽略.gitignore指定的所有文件
EN

Stack Overflow用户
提问于 2021-06-20 21:19:12
回答 2查看 114关注 0票数 1

我在一个目录下有几十个git存储库,它们不仅包含源代码,还包含构建构件、开发人员构件、blobs和其他通常被.gitignore忽略的数据

我想快速地将这些源代码转移到另一台计算机上。有没有一种简单的方法来打包所有不被git忽略的东西?

要添加更多上下文,请执行以下操作:

我有50个左右的git文件夹,每个文件夹都在不同的分支上,其中有一些最新的更改。

我想在当前状态(当前分支加上当前本地更改)复制git跟踪的所有文件。

如果通过克隆它们,这意味着转到每个文件夹,在本地提交当前的更改,记住分支名称,git将本地分支克隆到另一个文件夹,这样做50次,那么我强烈反对

EN

回答 2

Stack Overflow用户

发布于 2021-06-20 22:15:53

您可以尝试这样做:

代码语言:javascript
运行
复制
for dir in repo1 repo2 repo3; do
    git -C "$dir" ls-files | perl -pe "s[^][$dir/]"
done | zip /tmp/test.zip -@
票数 2
EN

Stack Overflow用户

发布于 2021-06-20 23:59:17

如果您想包含历史记录,请使用git bundle (如果您的存储库有子模块,则使用xeyownt/git-subundle )

this script为例:

代码语言:javascript
运行
复制
for repository in ${repositories[@]}
do
  echo "$repository..."
  declare file_name="../$repository-$(git rev-parse --short HEAD).bundle"
  cd $repository
  if [ -f $file_name ]; then
    echo 'Found bundle is current'
  else
    git bundle create $file_name --all
  fi
  cd -
done

每个存储库提供一个文件(没有任何私有或忽略的文件),您可以很容易地复制该文件,一旦复制,就可以从中克隆。

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

https://stackoverflow.com/questions/68056216

复制
相关文章

相似问题

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