GitHub
Created: 2017-03-23 10:51:31 -0700 Modified: 2023-12-07 08:42:10 -0800
It’s dead-simple to set up GitHub pages (~30 seconds from scratch). Just follow these instructions. Note that the repo either needs to be public or paid.
Protecting repos that I make public
Section titled Protecting repos that I make publicFor streaming, I want to make sure that I don’t publish secrets, and if I do, someone else could potentially remove them before too many people see.
- Add some collaborators who can use these steps
- Enable push protection
Projects
Section titled Projects- Keyboard shortcuts
- gb: go to projects view
- ⌃Space: make a new item
- Preface the item with ”#” to choose a repo to create an issue in
- If creating multiple issues at once, you can check “Create more” at the bottom of the dialog:
Gists
Section titled Gists- To add images, save the gist, paste the image into the comments for the gist, then copy the markdown that you get by doing that (reference)
- To use gists for markdown, make sure the gist’s file is named “.md”
Comparing across commits (reference)
Section titled Comparing across commits (reference)You can do this with commit hashes or tags.
Editing wikis
Section titled Editing wikisAs of 3/29/2019, this is not done through pull requests; if you have an “Edit” button, then you will just immediately save the results by pressing “Save Page”.
[14:37] EasyExperience: there’s no way to do PRs for wikis right now. That’s why some people just use a folder full of markdown files.
Refined GitHub (reference)
Section titled Refined GitHub (reference)This is a browser extension that adds a bunch of features to GitHub.
Keyboard shortcuts
Section titled Keyboard shortcuts”?” will always tell you the keyboard shortcuts for a particular page, so I’m just linking really helpful ones:
- “L” when filing an issue will let you add a label. Note: I couldn’t figure out a fast way to get back to editing the issue text other than pressing shift+tab 6 times.
Selecting multiple lines
Section titled Selecting multiple linesIf you’re in a code view like this, hold shift while you click a line number in the gutter and you can select multiple.
Making tables of contents (reference)
Section titled Making tables of contents (reference)For pages like this, managing the TOC can be really annoying. This will generate it for you as long as you’re not on Windows. :P
Pulling a pull-request repo
Section titled Pulling a pull-request repoNote that to make a pull request, you have to fork the repo, then you typically make your own branch and submit the pull request through that. To make finding this particular fork and branch easier, there is this tool: https://github.com/jkup/pullit
The “hub” tool can also do this. See notes here.
GitHub pages
Section titled GitHub pagesI haven’t actually used this, so just copy/pasting something should I ever need it. The context is that this was advice around OpHog, but I couldn’t actually use GitHub pages since the artwork was licensed (and thus couldn’t be stored on GitHub):
9/11/17
3:33 HiDeoo: Adam13531 Just enable github page on the repo settings
3:33 HiDeoo: And serve index.html
3:33 HiDeoo: It’s free and give you an url
3:37 HiDeoo: Adam13531 Yeah, that’s what I used for https://hideoo.github.io/twitch-emotes-viewer/ it just serve the index.html from the repo. The only difference for you is that index.html is not on the root of the repo but in src so what you would want is not the serve the master branch but a new one called gh-pages and you would simply push the src folder in this branch with “git subtree push —prefix src origin gh-pages”
Linking to code on GitHub
Section titled Linking to code on GitHubTo get something like the image below:
- Open some code that you want to link to on GitHub.
- Press “Y” while looking at the code to get the canonical link, that way you’re not linking to Master. For example, this changes a link like https://github.com/lerna/lerna/blob/master/src/commands/ImportCommand.js#L74 into https://github.com/lerna/lerna/blob/34fd08aaac474693f8d9e0cc46bf22db862880ba/src/commands/ImportCommand.js#L74
- Paste the canonical link into an issue without Markup.
- Preview your comment to make sure it worked.
Making tables of contents
Section titled Making tables of contentsThere’s a tool that can do this here: https://github.com/ekalinin/github-markdown-toc
Note: this technically works for any markdown, not just on GitHub
Linking to GitHub assets
Section titled Linking to GitHub assetsSuppose you want to link to an image or code from a JSFiddle:
HiDeoo Adam13531 I think it’s https://raw.githubusercontent.com/username/repo/file
HiDeoo Which you can transform in https://cdn.rawgit.com/username/repo/file
HiDeoo Or you can use their website https://rawgit.com/
Browsing the repository at a particular point in history
Section titled Browsing the repository at a particular point in historySuppose you want to see what all files looked like at a particular commit and not just the changed files for that commit:
Closing/deleting branches
Section titled Closing/deleting branchesIf you click “Branches” as shown below, you’ll get UI that will let you delete branches:
You can’t delete protected branches, so you’ll have to go into the repository’s settings to “unprotect” those branches first (I did this by changing “Apply rule to *” to “Apply rule to AAA” just to undo it temporarily, but that’s because no one else is pushing code for Bot Land).
Pull requests
Section titled Pull requestsTools to help
Section titled Tools to help- Generate co-author credits: https://coauthor.kevinzunigacuellar.com/
Making a pull request
Section titled Making a pull requestIf you ever want to make a change to someone else’s repository in such a way that they can easily merge it back into their codebase, do these steps:
Full steps:
- Fork the repo
- Clone the repo locally
- Make a new branch on the forked repo
- This is because new changes are committed to the PR as well, so you typically want to make a new branch that you can sort of “freeze” for the sake of a PR.
- Make changes on this new branch
- Commit and push (no need to merge)
- On GitHub, refresh your repo and you should see your change with a “Compare and pull request” button next to it (if not, just go to “new pull request” from the main repo and choose “compare across forks” to be able to see your fork). Click that. Make sure to pick the source branch and the destination branch correctly.
Note: any new pushes you do to that branch will automatically update the PR.
Simple steps:
- Go to a file in their GitHub and click the “Edit” button.
Submitting a pull request without cloning your own fork (reference)
Section titled Submitting a pull request without cloning your own fork (reference)If you did the above steps WITHOUT step #2 (“clone the repo locally”) and you instead cloned the original repo, you can just change the remote of the cloned repo to point at your fork, then continue to push as normal.
- First, get your remote URL. This is in the “clone” button on GitHub. Here’s an example: https://github.com/Adam13531/react-radio-group.git
- Run the command
- git remote set-url origin https://github.com/Adam13531/react-radio-group.git
Closing issues automatically when the pull request is accepted (reference)
Section titled Closing issues automatically when the pull request is accepted (reference)Just say “fixes #123” or “closes #123” in your pull request, even in the description.
[15:57] HiDeoo: If you want that, a function I wrote to alias git to hub + auto cd after cloning a repo https://bpaste.net/show/4c7e18d249ae
GitHub “secret” features (e.g. ignoring whitespace in diffs) (reference)
Section titled GitHub “secret” features (e.g. ignoring whitespace in diffs) (reference)Ignoring whitespace
Section titled Ignoring whitespaceAdd “?w=1” to the URL.
Note: this is no longer a secret
Seeing more context for a commit
Section titled Seeing more context for a commitPress the “close laptop”-lookin’ button at the bottom or top: