From 8801f39df04b8a56cee121e42b91ac6954c253a5 Mon Sep 17 00:00:00 2001 From: jbranchaud Date: Thu, 19 Dec 2024 18:24:27 -0600 Subject: [PATCH] Add Manually Pass Two Git Files To Delta as a Unix TIL --- README.md | 3 +- unix/manually-pass-two-git-files-to-delta.md | 32 ++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 unix/manually-pass-two-git-files-to-delta.md diff --git a/README.md b/README.md index 5bfb9d6..da725b1 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186). -_1542 TILs and counting..._ +_1543 TILs and counting..._ --- @@ -1528,6 +1528,7 @@ _1542 TILs and counting..._ - [Load Env Vars In Bash Script](unix/load-env-vars-in-bash-script.md) - [Look Through All Files That Have Been Git Stashed](unix/look-through-all-files-that-have-been-git-stashed.md) - [Make Direnv Less Noisy](unix/make-direnv-less-noisy.md) +- [Manually Pass Two Git Files To Delta](unix/manually-pass-two-git-files-to-delta.md) - [Map A Domain To localhost](unix/map-a-domain-to-localhost.md) - [Negative Look-Ahead Search With ripgrep](unix/negative-look-ahead-search-with-ripgrep.md) - [Occupy A Local Port With Netcat](unix/occupy-a-local-port-with-netcat.md) diff --git a/unix/manually-pass-two-git-files-to-delta.md b/unix/manually-pass-two-git-files-to-delta.md new file mode 100644 index 0000000..eb70e42 --- /dev/null +++ b/unix/manually-pass-two-git-files-to-delta.md @@ -0,0 +1,32 @@ +# Manually Pass Two Git Files To Delta + +I recently [wired up `delta` as my default pager and differ for +`git`](git/better-diffs-with-delta.md). However, when I installed `delta`, I +first wanted to see what its diff output looked like. + +How can I pass two versions of the same file from `git` to `delta`? + +I can show the current contents of a file with `git show` referencing the +`HEAD` commit. + +```bash +$ git show HEAD:main.go +``` + +Similiarly, I can show the contents of that file _one_ commit ago with `HEAD~`. + +```bash +$ git show HEAD~:main.go +``` + +I can then pass each of those commands as virtual files to `delta` using the +`<()` syntax. The older file goes first and the newer second. + +```bash +$ delta <(git show HEAD~:main.go) <(git show HEAD:main.go) +``` + +That works and comes in handy if you need to compare two things that aren't +necessarily files or aren't necessarily under version control. However, in +hindsight, I'd say it is easier to add delta as the pager and differ and try it +out directly.