Gather your Ruby and Perl and get your ship ready to set sail into the Sea Es Es with the new Piratocat Shirt.
Watch out for that Octokraken!!!
Available in the GitHub Shop
Gather your Ruby and Perl and get your ship ready to set sail into the Sea Es Es with the new Piratocat Shirt.
Watch out for that Octokraken!!!
Available in the GitHub Shop
The Game Developers Conference (GDC) is just a couple of weeks away, and we're giving away 20 expo passes so you can get in on the fun!
In addition to the expo itself, these passes give you access to all the gaming goodness you can handle, including the Game Career Seminar, the Independent Games Festival, and the Game Developers Choice Awards. For more information, please see the GDC passes page.
If you'd like to enter the contest, simply fill out the following short form and tell us about your favorite gamedev-related GitHub repository before Tuesday February 24th 11pm PST. GitHub employees will pick their favorite 20 submissions, and the winners will be contacted via email the following day. All winners will be responsible for their own accommodation and transportation.
Don't forget to swing by the GitHub booth and say hi if you're there!
We’ve just redesigned GitHub for Mac’s Changes tab to make it even easier to review lots of changes, and to see what will be shared before clicking Sync:
This means that you can focus solely on what’s most important to you: your changes.
We’ve also simplified and improved the process for fixing up a commit you’ve just made. Just click the “Undo” button in the pane that appears:
And if you don’t want to worry about manually syncing your changes after committing, you can enable “Automatically Sync after Committing” from the Edit menu:
This is yet another step toward our grand vision for GitHub for Mac, with plenty more to come, so give it a shot! If you already have GitHub for Mac installed, it will update itself to the latest version automatically.
As always, we’d love to know what you think. If you have any comments, questions or bug reports, please let us know.
Tickets are $99 USD, and all proceeds will be donated to the Software Freedom Conservancy. Check out the schedule breakdown below:
On Wednesday, we've lined two options for you to choose from:
If you're looking for some serious skills, sign up for advanced Git training from 11am-3pm. Become a Git expert as you learn from some of the best trainers in the world in a casual workshop setting.
If you're looking for an adventure, join your fellow Git Merge attendees for guided tours of Paris, specially curated for you. Explore and enjoy Parisian food and culture before the conference gets underway.
By invitation only, we will also be holding a Git Contributors Summit on Wednesday for contributors and maintainers of core implementations. Email us at firstname.lastname@example.org if you're a Git contributor who would like to attend.
Registration will open at 9am and the main event kicks off at 10am. We've assembled a group of speakers doing amazing things with Git, like:
There will also be plenty of opportunities to discuss, learn, and collaborate on the future of Git with everyone in attendance. And of course we'll wrap up the evening with a Git birthday party that you won't want to miss.
We hope you'll join us in Paris to celebrate 10 years of Git and the future of things to come. Check out the full site for more details, and to purchase your ticket.
Our newest shirt comes in two colors and makes it socially acceptable to write on your clothing with your GitHub username or project name.
Available in the GitHub Shop.
The Git developers have just released a major new version of the Git command-line utility, Git 2.3.0.
As usual, this release contains many improvements, performance enhancements, and bug fixes. Full details about what's included can be found in the Git 2.3.0 release notes, but here's a look at what we consider to be the coolest new features in this release.
One way to deploy a Git-based web project is to keep a checked-out working copy on your server. When a new version is ready, you log into the server and run
git pull to fetch and deploy the new changes. While this technique has some disadvantages (see below), it is very easy to set up and use, especially if your project consists mostly of static content.
With Git 2.3, this technique has become even more convenient. Now you can push changes directly to the repository on your server. Provided no local modifications have been made on the server, any changes to the server's current branch will be checked out automatically. Instant deploy!
To use this feature, you have to first enable it in the Git repository on your server by running
$ git config receive.denyCurrentBranch updateInstead
Deploying by pushing to a Git repository is quick and convenient, but it is not for everybody. For example:
.gitdirectory containing the entire history of your project. You probably want to make extra sure that it cannot be served to users!
Cloning a remote repository can involve transferring a lot of data over the network. But if you already have another local clone of the same repository, it probably already has most of the history that the new clone will need. Now it is easy to use those local objects rather than transferring them again:
$ git clone --reference ../oldclone --dissociate https://github.com/gitster/git.git
--dissociate option tells Git to copy any objects it can from local repository
../oldclone, retrieving the remainder from the remote repository. Afterwards, the two clones remain independent; either one can be deleted without impacting the other (unlike when
--reference is used without
If you run
git push without arguments, Git now uses the more conservative
simple behavior as the default. This means that Git refuses to push anything unless you have defined an "upstream" branch for your current branch and the upstream branch has the same name as your current branch. For example:
$ git config branch.autosetupmerge true $ git checkout -b experimental origin/master Branch experimental set up to track remote branch master from origin. Switched to a new branch 'experimental' $ git commit -a -m 'Experimental changes' [experimental 43ca356] Experimental changes $ git push fatal: The upstream branch of your current branch does not match the name of your current branch. To push to the upstream branch on the remote, use git push origin HEAD:master To push to the branch of the same name on the remote, use git push origin experimental $
The new default behavior is meant to help users avoid pushing changes to the wrong branch by accident. In the case above, the
experimental branch started out tracking
master, but the user probably wanted to push the
experimental branch to a new remote branch called
experimental. So the correct command would be
git push origin experimental.
The default behavior can be changed by configuring
push.default. If you want to go back to the version 1.x behavior, set it to
$ git config --global push.default matching
Git knows how to connect to a remote host via the SSH protocol, but sometimes you need to tweak exactly how it makes the connection. If so, you can now use a new shell variable,
GIT_SSH_COMMAND, to specify the command (including arguments) or even an arbitrary snippet of Shell code that Git should use to connect to the remote host. For example, if you need to use a different SSH identity file when connecting to a Git server, you could enter
$ GIT_SSH_COMMAND='ssh -i git_id' git clone host:repo.git
When Git needs a password (e.g., to connect to a remote repository over http), it uses the credential subsystem to query any helpers (like the OS X Keychain helper), and then finally prompts the user on the terminal. When Git is run from an automated process like a
cron job, there is usually no terminal available and Git will skip the prompt. However, if there is a terminal available, Git may hang forever, waiting for the user to type something. Scripts which do not expect user input can now set
GIT_TERMINAL_PROMPT=0 in the environment to avoid this behavior.
Some other useful tidbits:
git branch -dsupports a
--force/-foption, which can be used to delete a branch even if it hasn't been merged yet. Similarly,
git branch -msupports
--force/-f, which allows a branch to be renamed even if the new name is already in use. This change makes these commands more consistent with the many other Git commands that support
--force/-f. See how these features were implemented
Don't forget: an important Git security vulnerability was fixed last December. If you haven't upgraded your Git client since then, we recommend that you do so as soon as possible. The new release, 2.3.0, includes the security fix, as do the maintenance releases 188.8.131.52, 1.9.5, 2.0.5, and 2.1.4, which were released in December.
While making your source code available in a public GitHub repository is awesome, it's important to be sure you don't accidentally commit your passwords, secrets, or anything else that other people shouldn't know.
Starting today you can commit more confidently, knowing that we will email you if you push one of your OAuth Access Tokens to any public repository with a
git push command. As an extra bonus, we'll also revoke your token so it can't be used to perform any unauthorized actions on your behalf.
For more tips on keeping your account secure, see "Keeping your SSH keys and application access tokens safe" in GitHub Help.
GitHub is planning a conference like we've never planned before. Get ready for GitHub Universe – part festival, part conference, all for anyone who cares about making great software. From independent developers to large teams, open source to commercial apps and services: we're bringing together every part of the community to discuss how to design, build, and ship software.
Join us and over a thousand GitHub fans for two days of amazing community, industry-leading speakers, in-depth training, immersive activities, and the latest GitHub announcements.
Between now and October, we'll be rolling out updates here on the GitHub blog and over on the GitHub Universe conference website. You can also sign up to get updates about the conference, including notifications when tickets go on sale and ongoing news about speakers and activities.
It's already been a year since we launched the GitHub Security Bug Bounty, and, thanks to bug reports from researchers across the globe, 73 previously unknown security vulnerabilities in our applications have been identified and fixed.
Of 1,920 submissions in the past year, 869 warranted further review, helping us to identify and fix vulnerabilities fitting nine of the OWASP top 10 vulnerability classifications. 33 unique researchers earned a cumulative $50,100 for the 57 medium to high risk vulnerabilities they reported.
We also saw some incredibly involved and creative vulnerabilities reported.
Our top submitter, @adob, reported a persistent DOM based cross-site scripting vulnerability, relying on a previously unknown Chrome browser bug that allowed our Content Security Policy to be bypassed.
Our second most prolific submitter, @joernchen, reported a complex vulnerability in the communication between two of our backend services that could allow an attacker to set arbitrary environment variables. He followed that up by finding a way to achieve arbitrary remote command execution by setting the right environment variables.
To kick off our Bug Bounty Program's second year, we're doubling the maximum bounty payout, from $5000 to $10000. If you've found a vulnerability that you'd like to submit to the GitHub security team for review, send us the details, including the steps required to reproduce the bug. You can also follow @GitHubSecurity for ongoing updates about the program.
Thanks to everyone who made the first year of our Bug Bounty a success. Happy hunting in 2015!
Git will be 10 years old in April, and we're bringing back Git Merge to celebrate. Mark your calendars for April 8-9th to be a part of the only Git user conference of its kind.
Hosted at the La Gaîté lyrique in Paris' 3rd arrondissement, Git Merge will feature with sessions on using Git, scaling Git, and developing on Git from core Git maintainers.
Tickets, session details, and hotel information will be available soon. Follow @github on Twitter for updates, or add your email to the list at git-merge.com and we'll let you know as soon as tickets are on sale.
As a company grows, people and projects change. To continue to nurture the culture we want at GitHub, we've found it useful to remind ourselves what we aim for when we communicate. We recently introduced these guidelines to help us be our best selves when we collaborate on pull requests.
This is a spike to explore…
This simplifies the display of…
This fixes handling of…
These guidelines were inspired partly by Thoughtbot's code review guide.
Our guidelines suit the way we work, and the culture we want to nurture. We hope you find them useful too.
It's a new year and we couldn't think of a better way to start it off than with a new release of GitHub Enterprise. We've included a number of highly-requested features, along with some of the best stuff recently shipped on GitHub.com - all to give developers and admins the best tools to build and ship software at work.
Let's talk about some of the features you'll find in this release.
Many of you have told us that you want it to be easier to use GitHub Enterprise with LDAP, especially for organizations managing lots of users. With this release, GitHub Enterprise integrates with your LDAP directory more deeply than ever before, automating identity and access management for your organization. This means you can provision and deprovision user accounts in GitHub Enterprise directly from LDAP with user sync, and automatically grant users access to repositories with team sync. While we were at it, we also improved LDAP performance across the board, increasing reliability and throughput.
One of our goals with last year's rebuild of GitHub Enterprise was to make it available in more of the environments where you want to run it, whether you're managing your infrastructure on servers you own or on an internal cloud-based platform. That's why we're excited to announce that with this release, GitHub Enterprise is available on OpenStack KVM, in addition to Amazon Web Services and VMware. If your tech stack is built on KVM, you can now easily set up GitHub Enterprise and integrate with other parts of your internal system.
The Organization Audit Log that shipped with the November release of GitHub Enterprise has now been expanded to the instance level, giving administrators a skimmable and searchable record of every action performed across GitHub Enterprise in the past 90 days. Events like repository creation, team deletion, the addition of webhooks, and more are surfaced in a running log, along with information about who performed the action and when it occurred. These events can be filtered for deeper analysis, and you can create a wide range of custom search queries to make sure you're always aware of what's taking place on your instance.
If you're administering GitHub Enterprise, you should be able to identify whether your instance is performing correctly and quickly locate what's wrong when it isn't. With the new Instance Monitoring Dashboard, you now can. With data displayed for things like data disk usage, memory, CPUs, and more, you'll be able to answer questions like:
GitHub Enterprise 2.1.0 also includes:
To see the full list of features and bug fixes, check out the release notes for GitHub Enterprise 2.1.0.
If you're an existing GitHub Enterprise customer, you can download the latest release from the GitHub Enterprise website. If you want to give GitHub Enterprise a try, start a 45-day free trial on OpenStack KVM, AWS, or VMware.
Applications integrate with GitHub to help you and your team build, test, and deploy software. But not all apps are created equal. By adopting a list of approved applications, organization admins can better manage which apps can be given access to their organization's data.
If you're administering an organization on GitHub.com, you can set up a whitelist of trusted third-party applications.
With this protection in place, all applications need your explicit approval before they can access your organization's resources. You can grant access to your favorite continuous integration service (for example), while ignoring other applications that you may not trust or need.
If you're a member of an organization and have a third-party application that you want to use, simply ask your organization's admins to approve access. They can then review the requested application to decide whether it should have access to your organization's data.
For more information on setting up a list of approved applications for your organization, be sure to check out the docs.
If you develop an app that integrates with GitHub, check out the Developer Blog for our latest recommendations on working with organizations and their data.
Pull requests are fantastic. We use them every day to review and discuss code, documentation, and designs. Now you can create pull requests without leaving the warm embrace of GitHub for Mac.
We've also made forks easier to work with. Forked repositories now automatically fetch their upstream repository, and its branches can be checked out or merged. No more futzing with the command line or multiple remotes!
Download GitHub for Mac and start sending pull requests!
Starting conversations around changes is what pull requests and GitHub Flow are all about, so we’re excited to introduce a powerful shortcut that gets you there even faster.
When using your browser to edit a file on GitHub.com, the web-based commit composer lets you quickly propose a change to a new branch and then immediately open a pull request for discussion and review:
Reducing the time it takes to open a pull request lowers the contribution barrier, and having this workflow available entirely within the browser makes collaboration more approachable for people with all technical skill levels.
To learn how GitHub Flow works, and whether it might be a good workflow to use on your projects, check out our guide on Understanding GitHub Flow.