[Phpmyadmin-devel] git model

Isaac Bennetch bennetch at gmail.com
Fri Jan 3 21:36:33 CET 2014

I've been communicating with Sheressa about how we use Git and how
Github works in to the phpMyAdmin development workflow. I thought a
portion of my email might be helpful to a wider audience.

> Sounds like you're a bit confused about the way git and github work
> -- which is pretty normal when beginning. I'm still not an expert.
> In general, any Git repository has the complete commit history, so
> any time you `git clone` you get a complete independent copy. So in
> github, when you forked the phpmyadmin repository, github did a git
> clone of the official phpmyadmin repository (somewhat confusingly
> called phpmyadmin/phpmyadmin.git, the first phpmyadmin is the
> username and the second is the repository name). Within github, then,
> you had the sheressa/phpmyadmin.git repository (often github leaves
> off the .git porition when referring to a repository path). So that's
> your repository/clone/fork of the phpmyadmin -- and at that moment,
> you have the complete phpMyAdmin source code duplicated in your
> sheressa github account.
> At that point, you would have done a `git clone` of your repository,
> checking out the sheressa/phpmyadmin.git repository to your local
> computer. Github's instructions provide a way to continue to get
> updates from the phpmyadmin/phpmyadmin.git repository, so you'll
> continue to get new commits added to your local computer when you
> update. So technically, there are three different repositories in
> effect: phpmyadmin on github, sheressa on github, and the local
> clone. Since this all gets a bit confusing, Git allows you to give
> nicknames to these sources; on my system (which I believe I
> configured based on the Github documentation) the phpmyadmin one is
> 'upstream' and the ibennetch one is 'origin' (so I can `git fetch
> upstream` and `git push origin`). So basically you'll be making
> changes locally and pushing them to sheressa/phpmyadmin.git, then
> from there using the Github interface to submit a pull request to the
> phpmyadmin/phpmyadmin.git repository. Hope this makes sense so far.
> So far I've just talked about repositories; there's a whole other
> aspect which is the branches. In phpMyAdmin, development happens on
> the 'master' branch and we create a branch at each release, so we
> have for instance MAINT_4_1_3 and QA_4_1. When you do development
> work, it's generally best to do that in a new branch (which doesn't
> affect the phpmyadmin/phpmyadmin.git repository at all and only goes
> to sheressa/phpmyadmin.git if you push it there). So we do new
> development in 'master' but since branching is so easy with git, we
> generally develop something in a temporary branch and then merge it
> to master from there.
> Hope that helps a bit.

More information about the Developers mailing list