Field-tested tools for any project.
GitHub is the largest code host on the planet with over 21.2 million repositories. Large or small, every repository comes with the same powerful tools. These tools are open to the community for public projects and secure for private projects.
Integrated issue tracking.
A flexible issue tracker lets you stay on top of bugs and focus on features.
Your project's issues page can be as simple or as sophisticated as you like. Filter by open and closed issues, assignees, labels, and milestones. Sort by issue age, number of comments, and update time.
- Keyboard shortcuts make issue assignment and labeling fast.
- Only teammates and collaborators can create and view issues on private repositories.
- Anyone may create and view issues on public repositories.
Labels are another way to organize your issues and can be customized with your own colors.
Milestones are great at helping everyone work towards a goal. Set a due date, name your milestone, then start grouping issues together.
Further streamline your workflow by closing issues right from your commit messages.
The syntax is basic: if you want to close issue #35, put
closes #35 somewhere in your commit message. Once the commit is in your default branch (usually master), the issue will be closed.
Anyone with write access to your repository may close an issue or leave a note.
Reference commits and other issues
Issues know all about commits and other issues. Type in a commit SHA or an issue number and it will automatically be linked.
Collaborative code review.
Code review is an essential part of the GitHub workflow. After creating a branch and making one or more commits, a Pull Request starts the conversation around the proposed changes. Additional commits are commonly added based on feedback before merging the branch.
Pull Requests are living conversations that streamline the process of discussing, reviewing, and managing changes to code.
Each Pull Request takes into account not only what you would like pulled, but also where you intend those changes to be applied. From there, your team can discuss the changes as a whole, individual parts, or even specific lines. Later commits addressing concerns or ideas appear as part of the conversation.
GitHub allows you and your teammates to have a detailed discussion about every commit that is pushed to your project. Should it be included? Was it done correctly? Should something else be added? Talk about changes to your code with everyone involved before releasing or incorporating them.
You can have conversations on entire commits as well as individual lines of code.
With GitHub you can easily and efficiently compare any two branches in your project or network. See what work is unique to a branch with respect to another branch—that is, if you were to merge the branches together, what changes would be applied?
The GitHub compare view shows a list of all the commits unique to a branch, the sum of all the files changed across all of those commits, and a unified or split diff of those changes to clearly summarize what the branch represents.
Easily manage teams within organizations.
Whether you're running an open source project or a Fortune 500 company, organizations simplify team management.
With teams, you can give your developers as much or as little power as they need — from the ability to create projects on behalf of your organization to read-only access on existing projects. Members can be granted read, read-write, or admin-level access to repositories.
When you mention a team, all team members receive a notification.
Text entry with understated power.
Rather than dozens of buttons, we rely on the simplicity of GitHub Flavored Markdown for formatting text. The autocompleter makes quick work of mentioning people and teams, creating links to other issues, and adding the perfect Emoji.
Adding images is as simple as dragging and dropping from your desktop. For an even more distraction-free writing experience, you can use the fullscreen Zen Mode.
Syntax highlighted code & rendered data.
Our syntax highlighting currently supports over 200 programming languages. Data is as important to us as code, so we're always looking for new ways to render formats like STL 3D models, CSV files, and GeoJSON maps in the browser.
On the desktop and in your pocket.
Native GitHub applications for Windows and Mac make sharing code simple. You can use them to clone repositories, create branches, browse history, and commit changes with a friendly interface. Our Android app and mobile web views let you keep track of your projects on the go.
This button is used throughout the website, offering a quick way to view code in your installed GitHub app.
If you prefer the command line or another native client, you can use those as well.
The GitHub API documentation has everything you need to integrate your tool or application with GitHub.
Discover applications and tools that integrate with GitHub to help you and your team build software better, together.
Using GitHub Pages you can quickly and easily publish and host websites with us.
By the way, every GitHub repository is also a Subversion repository.
Use your favorite SVN tools to checkout, branch, and commit to GitHub repositories.