Eric
Eric

Reputation: 2231

Deploying with multiple git repos

For my day job, I work with a team of 6. We are all web devs working on a single project. With our current git setup, we are running into all sorts of issues with conflicts and things being overwritten that are causing havoc.

Here's is our current work flow. We have our master branch on a github repo. When we push changes to it, we also push to our production server remote which makes our changes "live". This is our bread and butter.

When we have new features or bugfixes that need to be made, we create a branch based off of master so as to not include any experimental or incomplete work. When that branch is ready for testing, we push it to another branch on github which we call "develop".

It should be noted that develop (at several times in the past) has been "synched" up to have the exact same contents as master.

We are currently having problems with our develop branch.We have a few things on our production site that simply do not/can not function on develop. SO we have to may direct pushes to master, often without pushing those same changes to develop first. This eventually puts our master branch so far ahead in commits over the develop branch that when we merge a new branch based off master into develop, features that were pushed to develop but never made it into master because they were scrapped or otherwise not ready get overwritten instead of throwing conflict.

Trying to merge and synch these two branches together like this are a nightmare and sometimes come with unpredictable results.

TL;DR What I'm looking for are suggestions for a way that we can re-organize our git work flow so that things like this do not keep happening. Are there features of git available that we are not using that might specifically help with this? Or are there other solutions out there alltogether that may help with the way we deploy? Any suggestions/tips would be appreciated.

Upvotes: 0

Views: 64

Answers (1)

forvaidya
forvaidya

Reputation: 3315

You being 6 developers projects Configuration Management should be simple.

If you are using github, bitbucket or equivalent you can consider using "Fork/Pull" workflow.

even for single branch workflow please ensure following

  1. Do not create / Push merge commits
  2. Always rebase code from upstream
  3. Create local topic branch
  4. Have correct CR/LF setting
  5. Have correct indentation setting and use uniform editor (vi, emacs, eclipse etc)
  6. Avoid unwanted indentation
  7. Learn GiT

Upvotes: 1

Related Questions