gpt4 book ai didi

git - 推送到远程服务器同时排除一些已提交的文件?

转载 作者:太空狗 更新时间:2023-10-29 14:07:44 25 4
gpt4 key购买 nike

我最近将 Git 集成到我的工作流程中,它的功能给我留下了深刻的印象。它不仅是一个很棒的 VCS,而且在通过 ssh 推送时绕着 FTP 运行几圈。不过今晚我确实遇到了一个问题,我想知道你们这些好人是否可以帮我解决这个问题。

我想跟踪项目中的某些文件,但不想将其推送到生产环境。有没有办法在从 repo 中排除某些文件的同时推送到生产服务器?两个很好的例子:

  • .less 文件根本不需要在生产服务器上,但绝对应该跟踪
  • 由于我的本地环境和生产环境在不同域下运行,因此 .htaccess 文件略有不同。我仍然想跟踪这些,因为大多数规则都是通用的(如果丢失,重写会很痛苦)——但每次我推送本地 .htaccess 时,它都会破坏我的生产环境,我必须手动修复文件。

如果可能,我希望将所有内容都放在一次提交/推送中。我的工作流程非常简单(除了这件事),添加额外的步骤或复杂的因素会让我感到悲伤。

我不知道它是否有帮助,但我正在使用 Tower帮助管理一切。

最佳答案

我没有适合您的完美解决方案,所以我会给您几个选项供您考虑。

首先,我过去曾通过使用单独的分支进行生产、质量检查和开发来解决类似的情况。这确实违反了您对“一次推送”的期望。

其次,如果您真的想将所有内容都保存在一个分支中,您可以使用另一种常用技术,即使用 .gitignore 排除特定文件,但通过软链接(soft link)在每个工作目录中链接到它们不同的文件。大多数操作系统都支持链接,包括 OSX、类 Unix(Linux、FreeBSD 等)和 Windows NTFS(通过 MKLINK 命令)。

要使用链接进行设置,您可以将 .htaccess 文件重命名为 .htaccess-dev,然后将其复制并更新为所有环境的 .htaccess-dev、.htaccess-qa。然后,将 .htaccess 添加到 .gitignore,最后在每个环境中创建指向正确环境的软链接(soft link)。

例如,如果您的 DEV 系统是 Windows,您会看到如下内容:

C:\code\dev-example>ren .htaccess .htaccess-dev

C:\code\dev-example>mklink .htaccess .htaccess-dev
symbolic link created for .htaccess <<===>> .htaccess-dev

C:\code\dev-example>dir
Volume in drive C is Boot
Volume Serial Number is DC8C-D5C9

Directory of C:\code\dev-example

06/02/2014 06:12 PM <DIR> .
06/02/2014 06:12 PM <DIR> ..
06/02/2014 06:09 PM 10 .gitignore
06/02/2014 06:09 PM <SYMLINK> .htaccess [.htaccess-dev]
06/02/2014 06:08 PM 22 .htaccess-dev
06/02/2014 06:12 PM 23 .htaccess-prod
4 File(s) 55 bytes
2 Dir(s) 13,497,245,696 bytes free

C:\code\dev-example>type .htaccess
# Config file for DEV

C:\code\dev-example>type .gitignore
.htaccess

这种方法适用于一些不同的配置文件,但如果你有很多这样的文件就会变得笨拙,而且它并不能真正解决你排除 .less 文件的愿望。

最后,如果您可以重新组织您的项目以将仅用于开发的代码分离到单独的文件夹中,您可以在生产服务器上使用 git sparse-checkout 来仅获取您想要在生产环境中使用的文件夹。结合使用软链接(soft link)配置文件,这可能允许您在维护 dev/qa/prod 中的不同工作文件夹的同时拥有单推工作流程。参见 http://briancoyner.github.io/blog/2013/06/05/git-sparse-checkout/

关于git - 推送到远程服务器同时排除一些已提交的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24005084/

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