25 comments

[ 3.0 ms ] story [ 62.8 ms ] thread
This has been posted a few times before and is an excellent resource.

It links to a GitHub repo [1] I made a while ago with every type of emoji as a separate file and commit as a fun and somewhat pointless demo.

However, for whatever reason the emojis on the repo stopped working (after a GitHub update?). Each emoji, regardless of commit message, is defaulting to the last one that was created (:zzz:). I reached out to GitHub a few times about it, but I never got a response. It's probably super low priority for them, but I thought I would share since, although minor, I technically broke GitHub.

[1] https://github.com/scotch-io/All-Github-Emoji-Icons

Github should definetely have more Emojis!

Emojis make everything a little bit fun.

> To add more color to your Git output: git config --global color.ui 1

Don't do this. The default (since 1.8.4) is auto, which adds colors if the output goes to a terminal, but doesn't if the output goes somewhere else (e.g., a pipe). That is probably what you want (and already have).

I fell for this myself at some point. Somehow expecting there to be more colors, or full color support, or something like that — Nope.

The book has a nice discussion: http://git-scm.com/book/en/v2/Customizing-Git-Git-Configurat...

> The default setting is auto, which colors output when it’s going straight to a terminal, but omits the color-control codes when the output is redirected to a pipe or a file.

> You can also set it to always to ignore the difference between terminals and pipes. You’ll rarely want this; in most scenarios, if you want color codes in your redirected output, you can instead pass a --color flag to the Git command to force it to use color codes. The default setting is almost always what you’ll want.

    git config --global --unset color.ui
File Explorer by pressing "t" is my favorite shortcut on Github since nested file structure gets annoying after a while of looking around.
Any way how to automatically mirror an external Git repo to GitHub? Any webhooks for that?
Can't we download and then push to github repo?
Yeah, but the point is to have it done automatically. It's easier to fork a repo on GitHub than on e.g. CGit, so I would like to mirror an external repo to GitHub and keep it in sync.
The point of git is, that you do not need to do this. Just push.
It's somewhat useful as poor man's backup, since forgetting to push to the other remote would be a pretty human thing to do. I guess you could do some kind of bash alias to push both remotes, but that would also assume that both are available from your network location (not sure if Git can have n remotes with one push alias).
There's a slight difference between a git push and a full mirror operation. A git push only synchronises the current branch. Even git push --all doesn't necessarily push all reachable commits - tags, other named refs (eg. stash), the state of the reflog...
The feature does or did exist, but hidden. The early versions of GitHub Enterprise (called GitHub FI) exposed this and it can be seen in action in some places (e.g.: https://github.com/ghc; look at the "mirrored from" subtitles). I really wish GitHub would expose that feature publicly, though. The post-receive advice they give only works if you have full access to the master repo and misses out on recording the "this is a mirror" piece of metadata on the repository, which is useful for people who might try to open PRs etc
> The first commit of a repo, as the first commit cannot be rebased later

Hey, can't I git rebase --root?

(comment deleted)
You can, but it's still a good idea to avoid as it tends to confuse some tools (and some people).
Ya, I agree. But if you are rebasing I assume you know what you are doing.

More like a shouldn't (or really shouldn't if you will) than cannot.

> Adding ?w=1 to any diff URL will remove any changes only in whitespace, enabling you to see only that code that has changed.

Annoyingly, this doesn't work for pull requests.

weirdly, an empty line is included in the example output. Does that not count as whitespace?