Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Optimal workflow for Local / Staging / Production server stack + Git

I am looking to incorporate a web development workflow that allows me to do the following:

  • Develop / Test locally
    • mimics production server (many subdomains, a few mysql DBs)
    • stays synced between desktop & laptop to allow on-the-go development
  • easily push local -> staging
  • easily push staging -> production
  • easily live-edit on the production server (occasionally need to for very minor content updates, typo changes, etc. Right now I spend a lot of time making small edits, pushing it to staging, then pushing to production which takes awhile for minor things.)

I am also new to Git. I have begun test the waters with Git in my personal projects, however the project I have inherited (with the production/staging environments) has not used any version control to this point.

Questions:

  • how can I easily adapt a large established project to a local environment (XAMPP)?
  • how can I sync my local environment between dev-laptop and dev-desktop?
  • Is Github worth it in this type of pre-established project / server setup? It seems like it adds a lot more steps (ex: local->push to git repo -> download repo to staging server -> push staging server to live server). Also I am concerned about maintaining privacy/security.

essentially I'm the single developer who was handed a fairly large project and I just want to try and make things as easy/straightforward on myself as possible. :)

like image 633
tdc Avatar asked Nov 09 '13 19:11

tdc


People also ask

Which best describes the typical basic Git workflow?

The most popular Git workflow is the usage of pull requests. In this workflow a developer uses a server side functionality to request that commits from a branch (from the same or another repository) are integrated into another branch (in the same or another repository).

What kind of workflow is used for large project in Git?

The Gitflow Workflow defines a strict branching model designed around the project release. This workflow doesn't add any new concepts or commands beyond what's required for the Feature Branch Workflow. Instead, it assigns very specific roles to different branches and defines how and when they should interact.

What is the basic workflow to track a file in Git?

Git tracks file changes by the user creating a save point, or in Git terms a commit. Each commit takes a snapshot of the current file system rather than storing just the changes made since the last commit. This allows a commit ot be extracted and the whole history not required to rebuild the file system.


1 Answers

Branches are one way to facilitate this workflow. There is a great blog post about how to use Git branches to manage a typical development workflow.

You would then have one branch for production (e.g. master), one for the live-edits which correspondes to the hotfix branch in the post above, and another one for development.

To sync your local environments on laptop and desktop, you can use the aforementioned development branch also as a remote branch and have both devices push their local commits on this branch to the remote repository.

like image 164
Florian von Stosch Avatar answered Oct 05 '22 10:10

Florian von Stosch