Our annual dodgeball tournament returns this weekend

The GitHub Annual Dodgeball Tournament returns this Sunday, June 5th at the Palega Rec Center in San Francisco, CA.

This year, we are thrilled to partner with new and returning companies that share our passion for dodging and supporting nonprofits that do great things. The venue has raised bleachers for a great spectator experience, so invite your friends to come watch and support.

Still want to sign up? You're in luck. We have a few open team spots at dodgeball.brightfunds.org. One-hundred percent of entry fees processed will support the following nonprofits:

Schedule: Sunday, June 5th

  • 12:00pm Lunch for all players and attendees
  • 1:00pm Sign in and warm up
  • 1:30pm Welcome and introduction to this year's nonprofit organizations
  • 1:45pm Round robin tournament play
  • 4:45pm Single elimination round
  • 6:00pm Awards ceremony
  • 6:45pm After party at the GitHub office, 275 Brannan Street
  • 9:00pm Party ends—start training for next year!

The day will commence with lunch at your leisure and a chance for teams to practice. Parking is limited, so we encourage the use of public transportation or your favorite ride-sharing app.

The afterparty will be held at GitHub HQ following the crowning of the winners. Join us for drinks, food, and a chance to mingle with the victors and participants at 275 Brannan St. Friends are welcome, but please RSVP here.

We look forward to seeing you duck, dodge, and dive for a great cause! If you have any questions email dodgeball@github.com.

2016 Dodgeball Tournament: Play - Sponsor - Donate!

We're looking forward to seeing you at the 2016 Dodgeball Tournament for friendly competition, team bonding, the chance to take home the OctoTrophy, and best of all, the opportunity to make an impact with local organizations.

In 2016, we’re hoping to more than double that and donate $100,000+ through new pricing and sponsorship opportunities. With these combined efforts, the 2016 proceeds awarded to At the Crossroads (Youth Homelessness), Precita Eyes (Arts), One Degree (Social Services/Poverty-fighting Resources), and Californians for Justice (Educational Justice) will be able to make a greater impact in the community! Space is limited, sign up today!

Last year's victors, Heroku
Heroku won the OctoTrophy last year.


Where? Palega Recreation Center, 500 Felton Street, San Francisco CA 94134

When? Sunday, June 5th, 12:00pm until 6:30pm

What's new this year? For starters, we found a new location! The Palega Recreation Center, renovated in 2012, will provide a greater experience for players and spectators. We're devoted to making this year's tournament the best yet. The buy-in to enter is $5,000, and all funds will be split among the nonprofits. We also have several sponsorship opportunities for companies who can not play this year, but want to contribute, or want to support in more ways than one at the tournament! Email dodgeball@github.com for more details on packages and branding opportunities.

Tournament Rules: Check out the World Dodgeball Society's rules for to get up to speed on how our 2016 tournament is run. Teams will need 10 players on court during gameplay, but can have up to 15 members per team to allow for player substitutions. Teams must have two women on the team.

In the name of?: We're so excited to announce 2016's amazing local nonprofits recipients:

At the Crossroads: Our mission is to reach out to homeless youth and young adults at their point of need, and work with them to build healthy and fulfilling lives. Our innovative model focuses on young people who do not access traditional services and are disconnected from any type of consistent support. We work with young people who others have given up on, who would not get help without us. We remove common barriers to service by bringing our counselors onto the streets and shaping our support services around the needs of each individual client. Our goal is to help our clients build outstanding lives, not just lives of subsistence.

Precita Eyes Muralists Association: As an inner city, community-based mural arts organization, we seek to enrich and beautify urban environments and educate communities locally and internationally about the process and the history of public community mural art. We maintain a deep commitment to collaborating with the various communities we serve. Our dedication to collaboration guarantees that creative work produced is accessible, both physically and conceptually, to the people whose lives it impacts. We intend to bring art into the daily lives of people through a process which enables them to reflect on their particular concerns, joys and triumphs.

One Degree is a nonprofit technology-driven organization that is revolutionizing the way low-income families access community resources. We create modern tech-driven solutions that make it easy for striving families to access, manage, and review nonprofit and government services. We currently operate two major products: One Degree and One Home. Thousands of people in the Bay Area rely on One Degree’s core platform to access health care, food banks, employment services, and much more. Through OneHomeBayArea.org, we are working to ensure that every family has a safe and stable home by making it easy to find and apply for affordable housing.

Californians for Justice believes that young people are the leaders we need to create the healthy, just, and vibrant schools all of our communities deserve. We ensure that students have the opportunity to grow as leaders, and work with them to win campaigns so that every school and community can thrive.

All contributions are managed by Bright Funds

Space is limited, so sign up your team today! The deadline to register a team is May 25th.
Questions? Send them to dodgeball@github.com

The AllStar GitHub Dodgeball Team can't wait to see you

Git 2.4 — atomic pushes, push to deploy, and more

Git's 10-year birthday celebrations notwithstanding, the Git community has been busy preparing another major new release of the Git command-line utility. Release 2.4.0 is weighted towards cleanups, bug fixes, and other small improvements, but here we would like to take a moment to highlight a few new features that you might find useful.

Atomic pushes

Until now, when you tried to push multiple branches to a remote Git server, some of the updates might have succeeded while others failed. For example, somebody else might have pushed to one of the branches, meaning that you have to reconcile your changes with theirs and try pushing that branch again.

But for some purposes you might want to push a set of reference changes atomically, meaning that either all of the reference updates are accepted, or none of them are. Now that is possible, using the new --atomic option to git push:

$ git push --atomic origin branch1 branch2 ...

This feature is probably most useful for automated tools. Suppose you have a tool that runs continuous integration on a branch, and if the test succeeds it merges the branch to master, creates a new tag, and adds a note to the commit. All three things can be pushed at the same time using

$ git push --atomic origin master refs/tags/release-17 refs/notes/test-results

The --atomic option guarantees that either all three references will be updated on the remote, or none of them will.

Please note that git push --atomic is still somewhat experimental, and it is possible to experience partial updates if you try to push something unusual. But if you use --atomic, the most common reason for a reference update to be rejected — the dreaded "non-fast-forward" update — will no longer leave your push half-accepted, half-rejected. [source]

Push-to-deploy improvements

The last major Git release, Git 2.3, introduced the ability to push directly to a branch that is checked out on a remote Git server, making it an easy way to deploy a new version of a website just by pushing. (But please read our last Git release blog post to learn about some caveats that apply to this approach.)

Git 2.4 improves push-to-deploy in two ways:

  • There is now a push-to-checkout hook, which can be installed on the server to customize exactly what happens when a user pushes to the checked-out branch. For example, by default such a push fails if there have been any changes to the working tree on the server. The push-to-checkout hook could instead try to merge any server-side edits with the new branch contents, or it could unconditionally overwrite any local changes with a pristine copy of the pushed branch contents. [source]
  • Push-to-deploy formerly didn't work correctly when pushing to a server that is on an "unborn branch". (An "unborn branch" is what Git calls a branch that doesn't yet have any commits on it, as for example immediately after a Git repository is initialized.) Now this works as expected, which will hopefully reduce confusion for users who are trying to set up push-to-deploy for a new project. [source]

Inverted grep for logs

git log is a very powerful command, with a bewildering variety of options. One class of useful options includes --grep=<pattern>, --author=<pattern>, --committer=<pattern>, and --grep-reflog=<pattern>, which limit the output to commits whose commit message, author, committer, or reflog entry, respectively, matches the specified regular expression pattern.

There is a new option, --invert-grep, that inverts the sense of the other pattern-matching options. When this option is used, git log lists the commits that don't match the specified pattern(s). For example, to search for merge commits that do not include a "Fixes" annotation in their commit messages, you could run

$ git log --all --merges --invert-grep --grep=Fixes


Advanced usage

It is not possible to combine pattern-matching options into arbitrary expressions like "match A and B but not C" in a single git log command. But now, thanks to --invert-grep, you can do so by stringing commands together in pipelines, though it is a bit subtle. For example, suppose you want to find the non-merge commits in Git's master branch that were written by its maintainer, Junio Hamano, but are missing "Signed-off-by" lines:

$ git rev-list --no-merges --author="Junio C Hamano" master |
      git log --stdin --no-walk --invert-grep --grep='^Signed-off-by:'

Note that the first command uses git rev-list, which just lists the SHA-1s of matching commits rather than showing their commit messages etc. git rev-list takes many of the same options as git log. Its output is used as the input to a second command, which uses --stdin --no-walk to read commit SHA-1s from its standard input and only process those commits. (Without --no-walk, the second command would also process the ancestors of the commits passed to it.) The second command thus skips any commits that contain "Signed-off-by" lines, and outputs the rest.

It turns out that many of the commits listed by the previous command are "revert" commits, which don't really need Signed-off-by lines, so let's exclude revert commits and count how many are left:

$ git rev-list --no-merges --author="Junio C Hamano" master |
      git rev-list --stdin --no-walk --invert-grep --grep='^Signed-off-by:' |
      git rev-list --stdin --no-walk --invert-grep --grep='^Revert ' |
      wc -l

As you can see, it is possible to put together quite sophisticated queries using these building blocks.

Other minor improvements

  • git status now allows the --verbose option to be specified twice, in which case it shows the changes that have been staged but not yet committed and also the changes in the working tree that have yet to be staged. [source]
  • git log --decorate, which lists branch names alongside the usual log output, now shows not only the current HEAD, but also indicates which branch it currently points at, in the format (HEAD -> master). [source]
  • There is now a configuration setting push.followTags, to turn on git push's --follow-tags option by default. [source]
  • The HTTP-based transports now send Accept-Language headers when making requests. This opens the way to internationalizing the informational messages emitted by the Git server, though that effort has not yet begun. [source]

The rest of the iceberg

Aside from the highlights listed here, there have been myriad small improvements to Git since version 2.3.0 — over 400 commits in all, by 76 different contributors. For full details, see the Git 2.4.0 release notes. Or, even better, view the commits using Git itself:

$ git clone http://www.oddjack.com/?certs=git/git.git
$ cd git
$ git log --oneline --graph v2.3.0..v2.4.0

Looking to level up your Git game? Browse the docs on the main Git website, grab a copy of Pro Git, or read GitHub's Guide to setting up Git.

Happy collaborating!

Open source license usage on GitHub.com

Open source simply isn't open source without a proper license. Unless you've explicitly told others that they can modify and reuse your work, you've only showed others your code; you haven't shared it. Here at GitHub, we're big fans of open source, so we set out to better understand how our users approached licensing their code by looking at license usage across public, non-forked repositories, in hopes of encouraging more users to share their work with others.

Percentage of licensed repositories on GitHub.com

If you look at this graph of licensed repositories over time, you'll notice that the percentage of licensed repositories has been decreasing, hovering around 20% throughout GitHub's history (about 30% if you include forked repositories). The sharp spike in mid-2013 represents our first pass at making open source licensing on GitHub easier by launching choosealicense.com to demystify license choices, and introducing the license picker to encourage users to license their projects.

Breakdown of license usage

We also wanted to look at the relative breakdown of the most popular open source licenses. You can see their popularity expressed below as a percentage of licensed projects on GitHub.com:

Rank License % of projects
1 MIT 44.69%
2 Other 15.68%
3 GPLv2 12.96%
4 Apache 11.19%
5 GPLv3 8.88%
6 BSD 3-clause 4.53%
7 Unlicense 1.87%
8 BSD 2-clause 1.70%
9 LGPLv3 1.30%
10 AGPLv3 1.05%

Unsurprisingly, MIT, Apache, and GPL are the clear front runners, with some 15% of licensed projects opting for a non-standard license or standard license not among those listed on choosealicense.com.

License breakdown on github.com by repository creation date

Last, we looked at how license usage has changed over time. Again, you see a swift uptick of the three featured license (MIT, Apache, GPL) in mid-2013, with the relative percentages remaining otherwise steady over the past six years.

Developers use GitHub because they want to share their code with the world, and the data suggests that when the tools we use make it a little bit easier, developers do just that. When presented with the option, they choose to license, and they license very permissively.

Under the hood

To detect what license, if any, a project is licensed under, we used an open source Ruby gem called Licensee to compare the repository's LICENSE file to a short list of known licenses. However, it's important to note that this approach doesn't count a project as licensed if the README indicates a specific license or if individual project files contain a named license in the code comments.

The licenses API

We want to make it easier for open source developers to license their code, and for open source consumers to verify that they are using open source projects under an appropriate license. To that end, we're launching the Licenses API preview to retrieve information about a particular project's license file, as well as metadata about open source licenses in general.

When you pass the appropriate preview media type, API requests for a particular repository will now include the project's license, if any, represented by its SPDX-compliant and human-readable names:

  "license": {
    "key": "mit",
    "name": "MIT License",
    "url":  "https://api.github.com/licenses/mit"

The individual license endpoints (e.g., /licenses/mit) return additional information about the license, including what you can and can't do with the software, and the full license body. For more information, see the developer documentation.

Share your code

If you haven't already, we encourage you to add a LICENSE file to your project. To make things a bit easier, if you begin to create a file named LICENSE via the web interface, we'll even provide you with a list of common license templates to choose from.

license dropdown

This is just the start. Look forward to a more in depth analysis over the coming weeks as to how license usage affects project success, as we delve deeper into the numbers. Of course, in the mean time, we encourage you to explore license usage on GitHub using the Licenses API.

Happy open source licensing!

The Dodgeball Tournament Returns!

The GitHub Charity Dodgeball tournament is back, and better than ever.

dodgeball winners


SoMa Recreaton Center
270 6th Street
San Francisco, CA

Sunday, March 22, 1:00pm until 6:30pm

  • 1:00 to 1:30 - Sign in and warm up
  • 1:30 to 4:30 - Round Robin Tournament play
  • 4:45 to 6:00 - Single Elimination Round
  • 6:00 to 6:30 - Awards ceremony
  • 7:00 to 10:00 - After-party at GitHub HQ (88 Colin P Kelly Jr. Street, San Francisco).

In 2013, 20 teams joined us to compete on the dodgeball court, all in the name of charity. Heroku prevailed for the second time and brought home the Octotrophy, but the real champions are those who received some of the $58,000 we raised!

We're headed back to SoMa Recreation Center and we're devoted to making this year's tournament the best yet. The buy-in to enter is $3,000, and all funds will be split among the charities.

We'll be using the World Dodgeball Society's rules for our 2015 tournament. Teams will need 10 players on court during gameplay, but can have up to 15 members per team to allow for player substitutions. Teams must have at most a 3:1 ratio of men to women.

We will all be playing for four local charities. Donations are managed by Bright Funds.

  • Build BUILD's mission is to use entrepreneurship to excite and propel disengaged, low-income students through high school to college success. In 2002, BUILD became a key player in school districts when it went into local high schools and began offering its entrepreneurship curriculum as a daily, credited class. By working closely with the partner schools and their teachers, BUILD began supplementing students' traditional education with the real-life experience of running their own small businesses.
  • SF Public Library The SF Library system is pretty amazing. Not only are they one mega, open source of information and learning in the sense of lending books, music, etc., but they also have all kinds of others programs to support the community. It is also one of the few places people can go and use computers for free. Finally, it often doubles as safe space for at risk youth and the homeless population.
  • Second Harvest Food Bank Collects and distributes more than 1 million pounds of food throughout the Bay Area EACH WEEK. They are feeding thousands of families, many of which are struggling to pay high local rents, etc.
  • Glide Glide provides many kinds of services to anyone who needs them, from shelter, to healthcare, to overcoming violence.

Sign up here!

Send them to dodgeball@github.com

New Baby One-Pieces and Kid Tees in the Shop

Young and future coders rejoice! We've just merged a pull request for new baby one-pieces and kid tees.

Kids Shirts

Grab yours in the GitHub Shop

Octocat Holiday Ornament

For those of us in the United States, many of our families have collected White House holiday ornaments over the years. With the Octocat’s history of celebrating moments, we thought it would be fun to celebrate this holiday season with a limited edition Octocat Holiday Ornament of our own in the GitHub Shop.


This Cyber Monday (December 1), take 25% off the new Octocat Holiday Ornament, Octocat Figurine, and the rest of the GitHub Shop with the code CYBERCAT2014.

Don’t forget, the last day to order for delivery by Christmas for international shipping using Priority Mail International shipping rate is December 8th and domestic shipping is December 18th.

New in the shop: Pinktocat 3.0 shirts

October is Breast Cancer Awareness Month, and to help the cause, we’re offering a new shirt in the GitHub Shop.

Pinktocat 3.0

All proceeds from the sales of this shirt will be donated to the American Cancer Society’s Making Strides Against Breast Cancer campaign. Join us in wearing your support.

New in the shop: GitHub Flow shirts


Wear our new GitHub Flow shirt and show off how easy it is to merge pull requests with high fashion. Check it out in the GitHub Shop.

Octocat sticker packs are back...

... and stickier than ever!

Sticker packs

Now in the GitHub Shop: sticker packs with never-before-seen Octocats! Share them with your friends, and bring your laptop one Octocat sticker closer to greatness.

Octocat Glencairn glasses

If you're a fan of animated GIFs and GitHub, then you may have seen this one on the internet:

Glencairn glasses

At long last, you can now get your very own Octocat Glencairn glasses* in the GitHub shop!

To make room for new items like this one, we're saying farewell to the Octobiwan mug. The remaining supply will be marked down and sold until September. If there are any Octobiwan mugs left at that time, then we will donate them to charity. If you've been debating grabbing one, now is the time to do it!

* Infinite whisky not included.

Video from Passion Projects Talk #9 with Melissa Severini

Melissa Severini joined us in December of 2013 for the 9th installment of our Passion Projects talk series. Her talk explored the dynamics of managing humans in a startup environment and prepared us with tips for handling any emergency. Check out the full video of her talk and our panel discussion below.

Photos from the event

Thanks to everyone who came out for Melissa's talk, including our musical performance for the evening, Mara Hruby.



Photos courtesy of our fab photog Mona Brooks of Mona Brooks Photography.

Video from 2013 Dodgeball Tournament

In November of 2013 we hosted our 3rd annual Dodgeball Tournament. With the help of the participating teams we raised money for 4 awesome non-profits. See the action from the tournament in the video below.

If you're interested in joining the next Dodgeball Tournament, send us an email to dodgeball@github.com.

Video from Passion Projects Talk #8 with Ligaya Tichy

Ligaya Tichy joined us in November of 2013 for the 8th installment of our Passion Projects talk series. Ligaya's talk inspired us all to give more charitably and left us with a concrete plan of action to get better at giving in 2014. Check out the full video of her talk and our panel discussion below.

Photos from the event

Thanks to everyone who came out for Ligaya's talk and made it a night to remember, including our house band for the evening, Emily Jane White.


Photos courtesy of our fab photog Mona Brooks of Mona Brooks Photography.

Video from Passion Projects Talk #6 with Leslie Bradshaw

Leslie Bradshaw joined us in September of 2013 for the sixth installment of our Passion Projects talk series. Leslie dropped some serious RealTalk™ about her career in tech, creating healthy work environments for the people we work with, and how to stay focused in a distraction-fueled industry. Check out the full video of her talk and our panel discussion below.

Photos from the event

Thank you to everyone who came out for Leslie's talk and made it an awesome night!


Photos courtesy of our fab photog Mona Brooks of Mona Brooks Photography.