Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use git to manage one codebase but have different environments

I'm using git for a personal project at the moment and have run into a problem of having one codebase for two different environments and was wondering what the cleanest way to use git would be.

Main Desktop

I Use this machine for most of my development. I have a git repository here that I cloned off of an empty repository that I use on my internal server. I do most of my work here and push back to the internal server so I can use that as a master of truth and to ease making backups.

Laptop

I sometimes want to code on the road, so I did a clone from the internal server and created a new branch called "laptop-branch". Unfortunately some directories MSVC++ version are different than from the Main Desktop environment. I just modified the files in the "laptop-branch" and committed them there.

Now I did a lot of changes while on vacation with my laptop, and want to push them to origin, but don't want the changes I made that were related to directories and compiler versions to be pushed back to origin.

What would be the best way to get this done?

edit: In this case it is not a config file, but a VC++ solution/project files that are changed.

like image 751
staackuser2 Avatar asked Jun 02 '10 23:06

staackuser2


1 Answers

The way I do it...

...is not commit environment specific files via .gitignore.

In CodeIgniter this means

  • .htaccess
  • database.php
  • config.php

That's about it.

Depending on how your application is setup this can have differing effects. Mostly I will have say config.example.php and example.htaccess which I will commit. Then if I have to setup an environment I will modify those and rename them in the process. Because they are ignored by git you don't have to worry about it.

If you have lots of environment specific code then you need to rethink the layout of your application.

like image 138
Josh K Avatar answered Nov 15 '22 03:11

Josh K