I wanted to add a Git alias that does a “git clone” and then “cd” to change into the new directory. However, while the “git clone” worked fine, the directory change did not. It turns out you can NOT change directories from within a Git alias.
Computing
Git matched multiple remote tracking branches
Sometimes when I run a command like “git checkout chore/fix-typo”, I get an error message like “fatal: ‘chore/fix-typo’ matched multiple (2) remote tracking branches”. We can configure Git to avoid this error by defaulting to the “origin” remote.
cd in script without polluting previous directory
I wanted to write a shell alias to get the Git status of a specific directory (~/code/projectx). How could I change directories without polluting the previous directory? (so ‘cd -‘ still works as it did before I ran my alias)
Notify When Command Completes
When I kick off a long running process on a project (e.g. “npm install”) and I shift my focus somewhere else, I often get absorbed in my other task and don’t return to the original process as soon as I wanted to. I’ve addressed this in the past by setting a timer to remind me to come back and check. More recently, I’ve started adding a audio notification to tell me when the task is completed.
Find dependency in composer.json with jq
Sometimes I need the full Composer dependency name but I only know part of it. For example, I may know Block X-ray Attributes is a Composer dependency but I don’t remember the full package name. While I could open the composer.json file and find the dependency, I can also leverage jq to do the work for me.
My Most Valuable Git Aliases are Shell Aliases
While Git supports aliases and I am a big fan of Git aliases, (e.g. ‘git lg’), the most valuable to me (and most used) aliases are shell aliases (e.g. ‘gc’ for ‘git commit’).
Git Rebase and the Multiverse
In “Git Merge and the Multiverse” I looked at merging branches and how sometimes this results in a fast-forward merge and sometimes in the creation of a merge commit. Now let’s look at Git rebase (a.k.a. the power to rewrite history).
Git Merge and the Multiverse
If you’re a fan of science (or science fiction), you may be familiar with the concept of the “Multiverse”, the idea that there are multiple universes. In some science fiction stories, one universe can split, branching into multiple universes and then later collapse into a single universe, this is a surprisingly good analogy for Git and branching.
Set Number of Characters in Commit Hash for git log
When I’m writing examples, it is often nice to have very short commit hashes. The ‘–abbrev=4’ argument, passed after the ‘–oneline flag, allows me to reduce the number of characters in the commit to 4.
GitHub Link to Commit instead of Branch
When linking to specific lines in a file to GitHub, it is preferable to link to those lines in the file for a specific commit (rather than for a specific branch). This is because the contents of a branch can change but the contents of a commit remain the same forever.