“Fractal Hillock” — Git workflow

Time and time again I’m asked what this means, as I’ve pointed out to most people, it’s never been published, anywhere.

Yes, this is in-house git workflow created by two developers, Alister McGown-Douglas and Andrew Wheal, whom I worked with at Propeller Communications.

The gist of the workflow is as follows:

  1. Fetch
  2. Rebase
  3. Resolve conflicts, if any
  4. Force push

So something like this.

git fetch -p
git rebase <branch> # resolve deps during rebase
git push -f <origin> <branch>

To “close” (i.e. merge) the work the branch is based off, the following would occur:

  1. The above steps
  2. git close (which is essentially a fancy bash script that runs the following command
git merge --ff-only <branch>

Why use this work flow?

It makes your git-tree much more elegant. I promise you.

*   963ece5 (HEAD, origin/master, master) Merge pull ...
|\
| * d0cdc36 [BUG] fixed typo within README and upped ...
|/
* f31dea3 (tag: 0.1.1) Merge pull request #20 ...
|\
| * 66f445a [BUG] added code quality and coverage statuses
|/
* a18f4c9 Merge pull request #19 from steadweb/bugfix/scrutinizer
|\
| * ccef680 [BUG] added script to wrong config file, derp.
| * a23f10b [BUG] added phpunit --coverage-text command
| * def82d2 [BUG] added scrutinizer config
|/
* f8adcea Merge pull request #17 from steadweb/bugfix/travis
|\
| * 4bbb298 [BUG] added travis-ci build status
|/
* 90f7463 Merge pull request #12 from steadweb/bugfix/docume...
|\
| * 657102f [BUG] corrected typo in README
|/
* 582f7e3 Merge pull request #11 from steadweb/bugfix/build
|\
| * 49eeca9 [BUG] moved build job into ./build dir
|/
* dee47c2 Merge pull request #9 from steadweb/bugfix/psr2
|\
| * 6131f69 [BUG] psr2 fixes
| * 7445f70 [BUG] better unit tests for Processes. Moved NullOut...
| * 58c01d0 [BUG] additional travis / psr2 fixes

One simple rule, never run git pull origin/master — ever.

Show your support

Clapping shows how much you appreciated Luke John Steadman’s story.