开发者

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

开发者 https://www.devze.com 2023-01-02 15:18 出处:网络
I\'m using git for a personal pr开发者_StackOverflow社区oject 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

I'm using git for a personal pr开发者_StackOverflow社区oject 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.


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.


I think it is too late for the .gitignore solutions.

I would :

  • create a laptop branch on your desktop machine machine
  • pull your changes from your laptop on this branch
  • checkout the config file which should not have changed from the master branch
  • verify it works and twiddle till it does
  • commit it
  • checkout the master branch
  • merge it with the laptop branch
0

精彩评论

暂无评论...
验证码 换一张
取 消