gpt4 book ai didi

php - Capistrano 上传 .git 目录

转载 作者:可可西里 更新时间:2023-11-01 13:08:19 25 4
gpt4 key购买 nike

我正在将 git 与 capistrano 结合使用。

我在本地机器上的文件夹中初始化了我的项目:

git init

然后我将项目推送到服务器目录然后我调用了 cap deploy部署工作正常,只是它将本地 .git 文件夹结构以及我的 .gitignore 和 Capfile 上传到一个可公开访问的文件夹。

这是我的 gitignore 文件:

.DS_Store
uploads/**/*
Capfile
.gitignore
.git/**/*

这似乎并不能解决问题。有帮助吗?

谢谢!


编辑:更新的 .gitignore 文件:

将部署策略更改为导出:

set :deploy_via, :export

这适用于忽略 .git 文件夹,但仍然没有考虑下面看到的我的 .gitignore 文件的内容

.DS_Store
includes/php/config.php
/uploads
Capfile
.git





编辑 2(解决方案): 编辑 1 与以下内容相结合就达到了目的。在 .gitignore 文件中列出之前已经添加的文件将不断上传。假设我有以下 .gitignore 文件。

.DS_Store
includes/php/config.php

然后我运行了以下命令:

git add .
git commit -a -m 'some commit'

然后我决定添加到我的 .gitignore 文件中,现在它看起来像这样:

.DS_Store
includes/php/config.php
Capfile

再一次,我跑了:

git add .
git commit -a -m 'another commit'

现在我会看到 .DS_Storeincludes/php/config.php 还没有上传,但是 Capfile 已经...这就是发生的事情在我最初的问题中对我来说。原因:我认为只有在添加时才考虑 .gitignore 文件(即 git add .)。如果我已经添加了文件,然后把它们放在 .gitignore 文件中,它们就已经被添加到项目中了。我需要使用 git rm 命令来删除它们。我刚刚开始使用新的 .git 存储库并解决了问题,但您不必这样做 - 您可以删除已经添加但现在想使用 git rm 命令忽略的任何文件.

我选择了帮助我得出这个结论的答案作为正确答案,尽管完整的解决方案已在上面详细介绍。

最佳答案

您的部署策略是什么?

你有 Capistrano 设置来排除 .git 文件吗?如果您使用 set :deploy_via, :copy 然后确保添加以下内容:

设置:copy_exclude, [".git/*", ".svn/*", ".DS_Store"]

否则使用 set :deploy_via, :export 应该忽略你的源代码控制文件夹

http://www.capify.org/index.php/Understanding_Deployment_Strategies

关于php - Capistrano 上传 .git 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3483958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com