【问题标题】:How to use git to manage one codebase but have different environments如何使用 git 管理一个代码库但有不同的环境
【发布时间】:2011-02-27 04:37:00
【问题描述】:

我目前正在将 git 用于个人项目,并且遇到了为两个不同的环境使用一个代码库的问题,我想知道使用 git 的最干净的方法是什么。

主桌面

我在大部分开发过程中都使用这台机器。我在这里有一个 git 存储库,它是从我在内部服务器上使用的空存储库中克隆出来的。我在这里完成大部分工作,然后将其推送回内部服务器,这样我就可以将其用作真相大师并轻松进行备份。

笔记本电脑

我有时想在路上写代码,所以我从内部服务器克隆并创建了一个名为“laptop-branch”的新分支。不幸的是,某些目录 MSVC++ 版本与 Main Desktop 环境不同。我刚刚修改了“laptop-branch”中的文件并在那里提交。

现在我在度假时用我的笔记本电脑做了很多更改,并希望将它们推送到原点,但不希望我所做的与目录和编译器版本相关的更改被推回原点。

完成这项工作的最佳方法是什么?

编辑:在这种情况下,它不是配置文件,而是更改的 VC++ 解决方案/项目文件。

【问题讨论】:

  • +1,我期待一些有趣的答案。
  • 我喜欢这个问题,但这似乎更多地属于 stackoverflow 领域。
  • @MrStatic:你可能是对的。
  • 这更适合 Stack Overflow。很快就会迁移到那里。

标签: git version-control environment


【解决方案1】:

我这样做的方式......

...不是通过.gitignore 提交环境特定文件。

在 CodeIgniter 中这意味着

  • .htaccess
  • database.php
  • config.php

就是这样。

根据您的应用程序的设置方式,这可能会产生不同的效果。大多数情况下我会说config.example.phpexample.htaccess 提交。然后,如果我必须设置一个环境,我将在此过程中修改并重命名它们。因为它们被 git 忽略了,所以你不必担心。

如果您有很多 环境特定代码,那么您需要重新考虑应用程序的布局。

【讨论】:

  • 我也为我正在开发的 Web 应用程序执行此操作,但在我使用部署方法时遇到了一些问题。我最终在配置文件中管理了我的环境(它是一个 Django 应用程序,所以你可以在配置文件中使用 Python),但仍然认为它是一个肮脏的 hack。
  • 不是一个肮脏的黑客。这是管理多个环境的标准操作程序,几乎一直。本地环境、开发环境、临时环境、实时环境。
  • 很难测试,所以这是一个肮脏的 hack imo。
  • @emostar:你是什么意思“很难测试?”
  • 也许我们在谈论不同的事情......我说的是在 Django 配置文件中使用 python,这使得环境测试变得困难,基于什么 python你写的代码。
【解决方案2】:

我认为 .gitignore 解决方案为时已晚。

我愿意:

  • 在您的台式机机器上创建笔记本电脑分支
  • 在此分支上从您的笔记本电脑中提取您的更改
  • 从主分支签出不应该更改的配置文件
  • 验证它是否有效,然后一直旋转直到它有效
  • 提交
  • 签出主分支
  • 将其与笔记本电脑分支合并

【讨论】:

  • 嗯,有一个桌面分支不是更好吗,这样两台机器都可以与主分支同步?然后我从台式机的桌面分支和笔记本电脑的笔记本电脑分支上工作,并从 master 合并/rebase?
  • 是的,这是一种更好的方法。但是你真的想像 Josh 提到的那样将那些与机器相关的文件一起排除在 git 之外。它们几乎没有价值,即使您需要它们,当您再次检查它们时,它们也可能不再与您的 IDE 兼容。麻烦多于其价值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-05
  • 2021-07-12
  • 2021-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 2014-04-22
相关资源
最近更新 更多