Practical Git and GitHub (Free version)
With Membership
Suggested price

Practical Git and GitHub

Real-world examples of solutions for problems that occurred during day to day Git/GitHub usage.

About the Book

This book contains the Git and GitHub related blog posts posted on Dinis Cruz’ blog at

This is the fist draft release of this book, so please send your suggestions, criticisms, ideas or comments to

Notes about current structure: At the moment, the chapter order is the one created by the original ‘import from blogger’ (i.e. by publish order). A better idea might be to create logical groups, so that the posts are ordered based on some user-friendly criteria (still to be defined)

About the Author

Dinis Cruz
Dinis Cruz

Dinis Cruz is a Developer and Application Security Engineer focused on how to develop secure applications. A key drive is on 'Automating Application Security Knowledge and Workflows' which is the main concept behind the OWASP O2 Platform and Security Innovation's TeamMentor (Dinis is the main developer and architect of both Applications). Current day job is with Security Innovation where Dinis tries to promote openness, quality and sharing as part a core tenet of TeamMentor's application development environment.

After many years (and multiple roles) Dinis is still very active at OWASP, currently leading the O2 Platform project and helping out other projects and initiatives.

After failing to scale his own security knowledge, learned Git, created security vulnerabilities in code published to production servers, delivered training to developers, and building multiple CI (Continuous Integration) environments; Dinis had the epiphany that the key to application security is "Secure Continuous Delivery: Developer’s Immediate Connection to What They’re Creating". This 'Immediate Connection/Feedback' concept is deep rooted in the development of the O2 Platform/TeamMentor, and is something that will keep Dinis busy for many years.


Free version
  • PDF

  • EPUB

  • WEB

  • English

With Membership
Suggested price
The Book
  • PDF

  • EPUB

  • WEB

  • English

Minimum price
Suggested price

Bundles that include this book

4 Books
Bought separately
Bundle Price

Table of Contents

    • Leanpub book, originally based on Blog posts
    • Change log
  • 1. October 2012
    • Using a Git Branch to fix a Bug
    • Git and GitHub commands to create and deploy new version of TeamMentor
    • Idea: Sync Blogger Posts with a GitHub repository
    • Approving a GitHub Pull Request Workflow
    • Deploying TeamMentor to AppHarbor (.NET Cloud) using Git push
    • The need to create forks/clones for website
    • Using Git Branches to deal with the multi-config variations of TeamMentor
    • Handling content changes made on hosted site created by Git clone (with auto Git commits and pushes)
    • Going back in time using Git’s checkout
    • Adding Tags to TeamMentor Master repository
    • Creating the final TeamMentor with SI Library repository via multiple Git pulls and pushes
  • 2. November 2012
    • Pretty cool visualization of the ‘GitHub based’ TeamMentor Development+QA+Release workflow
  • 3. December 2012
    • Comparing two GitHub Issues List
    • Using TeamCity to build on Git Commit, deploy to AppHarbor and open browser
    • Minimum required files to run git.exe on windows (for clone, push and pull)
    • Rewriting Git History (locally and at GitHub)
  • 4. January 2013
    • GitHub is having some probs today
    • Dangerous bug between Git, GitHub and Windows (duplicate directories with different capitalization)
    • Can Git be used instead of Word’s ‘Track Changes’
  • 5. March 2013
    • Seeing an NGit Diff by using reflection to access the internal Sharpen.ByteArrayOutputStream Class
    • needs to improve their the ‘Normal’ status definition and error reporting dashboard
    • Another GitHub ‘Normal’ status that doesn’t allow me to Push
    • Prob with (older version of) NGit where it was failing to create Git repositories in Azure/TeamCity
    • Creating a version TeamMentor which uses the new GitUserData.config file
    • Changing the ‘View TM article by anonymous users’ status via GitHub
    • Creating a new TeamMentor test site using TeamCity, GitHub and Azure
    • Using Git Branches to fix Issues added to TeamMentor’s GitHub repository
    • Extracting content files from a Azure deployed version of TeamMentor (pre 3.3 git support)
    • Using NGit to create native Git support in Azure deployed app (with automatic pushes and pulls)
  • 6. April 2013
    • Git pulling a TeamMentor Library and renaming it
    • Creating QA versions of TeamMentor UserData repository, and using branches to show/test the multiple config options
    • Changing a User’s ExpiryDate from GitHub hosted file
    • Linus gift to the world will be Git not Linux (and what about an OS built on top of an hash-driven file system?)
    • What the move from HTML to WikiText looks like (in GitHub)
    • Is Git a Single point of failure for TeamMentor?
    • Setting up Ian’s CI Development Environment (for TeamMentor)
  • 7. May 2013
    • Example of two TeamMentor sites using the same GitHub Content Library
    • AzureGate - how Azure’s ‘subscription upgrade’ crazy mode caused us to stop using Azure for VM Hosting (and Git+GitHub saved the day)
    • Great presentation on Git Branching (very similar to the model we are using in TeamMentor)
    • Fixing bug in TBot user editor via Git merge of fix developed on another repo’s branch
    • Releasing HotFix 1 for TeamMentor 3.3 (using Git to deploy updates to live servers)
    • Great post - Git: Who cares about branches? It’s all about collaboration and code reviews
    • Creating website using GitHub Pages (with screenshots of all design options)
  • 8. June 2013
    • Creating TeamMentor release 3.3.2 (3.2 version with HotFix 2)
    • Fixing a couple bugs and pushing new TeamMentor 3.4 Dev Version (from 4 to 5)
    • Gource Visualization of “TeamMentor Git Development - 18 Months in 180 Seconds”
  • 9. August 2013
    • Creating a clone of WebGoat on GitHub
  • 10. September 2013
    • Git Flow - Moving patches from one Commit into another Commit
    • Example of using GitHub Pull Requests to merge changes made on Branches
    • Script to Git Clone 13 repositories in order to have all TeamMentor Libraries in one folder
  • 11. October 2013
    • Fixing the Merge conflict caused by one extra commit on TeamMentor master
    • Enabling GitHub Two Factor Authentication
    • Syncing all releases to the same commit and Tag (for TeamMentor v3.4)
  • 12. January 2014
    • How to update a forked GitHub repo (in this case tm-sme/Lib_Vulnerabilities)
    • Updating the GitHub repos for the 1.6.0 release of the Eclipse Fortify Plugin
    • Updating GitHub Forks with latest commits from GitHub’s ‘parent’ repo
    • Using TeamMentor 3.4 TBot admin pages to load and sync a Library hosted on GitHub
    • Using TeamMentor 3.4 TBot admin pages to load and sync UserData with a GitHub hosted repo
    • Adding files to TeamMentor’s web root via a UserData folder (synced with GitHub)
  • 13. February 2014
    • Reverting changes mades to TeamMentor articles

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub