As a GitHub community member, you probably spend there a lot of time. But do you know all the possibilities of this repository? It has some non-obvious features to make your work even better and faster than you think. In order to raise your productivity, you have to explore and use all GitHub features.
There are many cool things on GitHub you already know and use. Maybe. Or maybe you had no chance to explore what this platform can give you. So we suggest you read this scope of useful GitHub features to make you the real repository expert.
- Code editing
This feature might seem obvious to you. But how often do you use it? This possibility exists for any text file or repository: edit the file and press “Propose file change”. After this GitHub will fork the repo for you and create a pull request. This way you have no need to fork and pull and change locally and push and create a PR
- Pasting images
You can paste an image straight from the clipboard. When you paste, you’ll see it gets uploaded (to the ‘cloud’) and becomes the markdown for showing an image. Wonderful!
- Formatting code
If you want to write a code block, you can start with backticks — and GitHub will make an attempt to guess what language you’re writing. But if you’re posting a snippet of something like Vue, Typescript or JSX, you can specify that explicitly to get the right highlighting. Here you will find all the supported syntaxes
Hint: This extends to gists also. If you give a gist the extension of .jsx you’ll get JSX syntax highlighting
- Closing issues with magic words in PRs
By entering the text “fixes #xxx” in your pull request #xxx description (or anywhere in any comment on the PR) you will automatically close the issue. Voila!
- Linking to comments
By clicking on the date/time next to the name you can link to a comment (like in any of existing social networks)
- Linking to code
You can do this by clicking the line number next to the code line. This way you update the URL with the line number.
If you hold down Shift and click another line number, the URL is updated again and now you’ve highlighted a range of lines.
Sharing that URL will link to this file and those lines
- Using the GitHub URL like the command line
Navigating around GitHub using the UI is all well and fine. But sometimes the fastest way to get where you want to be is just to type it in the URL. For example, if you want to jump to some particular branch and see the differences with master, you can type /compare/branch-name after a repo name.
But if you were working on an integration branch, you’d type /compare/integration-branch…my-branch
- Create lists, in issues
To see the list of check boxes in your issue (in a form of elegant completing status bar “2 of 5”) you can create interactive check boxes with this syntax:
- [ ] Screen width (integer) - [x] Service worker support - [x] Fetch support - [ ] CSS flexbox support - [ ] Custom elements
You can check/uncheck those boxes! And it updates the underlying text. If you have this issue on a project board, it will show the progress there too
- Project boards in GitHub
GitHub has its own offering for big projects. And the power of managing your tasks in GitHub is that it’s integrated with the rest of the repository — so you’ll probably want to add existing issues from the repo to the board. You can click Add Cards up in the top right and find the things you want to add. Here the special search syntax comes in handy, for example, type is:pr is:open and now you can drag any open PRs onto the board, or label:bug if you want to smash some bugs.
Or you can convert existing notes into issues. Or lastly, from an existing issue’s screen, add it to a project in the right pane. There’s a huge benefit in having your ‘task’ definition in the same repo as the code that implements that task
- GitHub wikiFor an unstructured collection of pages (just like Wikipedia), the GitHub offered their own GitHub Wiki.
You can enter your pages from your docs as wiki pages, then create a custom sidebar so that you could emulate having some actual structure. The sidebar is there at all times, although it doesn’t highlight the page you are currently on. Note, that links have to be manually maintained. If you’ve outgrown a single README.md file and want a few different pages for user guides or more detailed documentation, then your next stop should be a GitHub Wiki
- GitHub Pages
You may already know that you can use GitHub Pages to host a static site. And if you didn’t now you do. Let’s take a look at building a site with Jekyll.
At its very simplest, GitHub Pages + Jekyll will render your README.md in a pretty theme. By clicking the ‘settings’ tab for your site in GitHub, turn on GitHub Pages, and pick a Jekyll theme… That’s great!
From this point you can build out a whole static site based mostly on markdown files that are easily editable, essentially turning GitHub into a CMS. To run locally it requires Ruby
- Using GitHub as a CMS
Let’s say you have a website with some text in it, but you don’t want to store that text in the actual HTML markup. Instead, you want to store chunks of text somewhere so they can easily be edited by non-developers. Perhaps with some form of version control and even with a review process. For this purpose, you can use markdown files stored in your repository to hold the text. Then have a component in your frontend that fetches those chunks of text and renders them on the page. This will make GitHub your CMS.
Based on the 12 cool things you can do with GitHub material by David Gilbertson.
Subscribe to our weekly newsletter!