我如何git拉出被忽略的文件?

时间:2017-02-07 11:49:40

标签: git version-control gitignore dvcs drupal-8

对于我的Drupal 8安装,我想使用以下工作流程:

1)在本地计算机上,使用Composer完成安装和更新。然后将Composer文件推送到Bitbucket。

2)在远程服务器上,我有一个暂存文件夹,我可以在其中提取作曲家文件并进行作曲家安装。

3)在同一台服务器上,我想为生产站点提供另一个文件夹。在这里,我克隆了暂存文件夹,然后拉出所有更改。

现在的问题是,Drupal核心和模块文件夹(由Composer安装的文件夹)位于gitignore中。因此,他们不会从升级到生产。如何跟踪/版本控制WHOLE暂存文件夹并将更改提取到生产?如果我删除了gitignore文件,我想下次将从Bitbucket再次删除它们。

编辑:本文介绍了一种解决方案,但我真的不了解它如何与此CI服务器一起使用:http://nuvole.org/blog/2016/aug/19/optimal-deployment-workflow-composer-based-drupal-8-projects

2 个答案:

答案 0 :(得分:1)

您应该修改.gitignore并再次按下并按下步骤:

  1. 在本地计算机上,删除.gitignore中的Drupal核心和模块文件夹,然后添加&承诺与再推一次。
  2. 在暂存文件夹的远程服务器上,进行更改。
  3. 在生产站点的远程服务器上,从暂存文件夹中提取更改。
  4. <强>选项2:

    1. 保护暂存文件夹中的.gitignore文件,即使从bitbucket拉出,.gitignore也不会被覆盖如下:

      git update-index --skip-worktree .gitignore

    2. 修改.gitignore文件并在暂存文件夹中添加一些有用的文件。

答案 1 :(得分:0)

提交文件并推送到用于生产的不同存储库,或推送到远离主开发分支的分支/标签(后一种方法的缺点是您的存储库可以快速变大)。您也可以选择在暂存时覆盖gitignore配置,例如:

git add -f .

或者,考虑在生产中运行作曲家安装作为部署过程的一部分,或者构建一个可以推送的容器映像(例如docker)并运行它以帮助尽可能保持开发和生产中的类似。