Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #1527

A

Andrew Lock

Personal blog · andrewlock.netprogrammingweb

Andrew Lock's personal blog at andrewlock.net covers programming and web. Since 2018, 47 different Hacker News readers have linked it 64 times, most often “Working with stacked branches in Git is easier with –update-refs (2022)”. It is still writing: the last post was on 2026-10-20, and you can follow it by feed.

Visit the blog
64mentions?
5recommend?
47HN people?
2018–2026first – last linked?
Links on Hacker News per year · peak 15 in 2023

Too few sampled comments (25) to say how often HN recommends it.?

Why HN links it

HN readers link Andrew Lock's .NET blog for practical posts on git stacked branches and rebase --update-refs, and on C# topics such as strongly typed IDs, AsyncLazy with ConcurrentDictionary, and new .NET features.

Recommended for · 5 comments
Praised as helpful on ConcurrentDictionary, good on stacked git branches, and a great source of new .NET features.

Summarised by Claude from a sample of 25 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Hi, my name is Andrew, or ‘Sock’ to most people. This blog is where I share my experiences as I journey into ASP.NET Core.

Most-linked posts?

  1. Working with stacked branches in Git is easier with –update-refs (2022)
    16 people · 17 mentions · first linked 2022-11-23
  2. Using strongly-typed entity IDs to avoid primitive obsession (Part 1)
    3 people · 3 mentions · first linked 2019-04-09
  3. Why is string.GetHashCode() different each time I run my program in .NET Core?
    2 people · 3 mentions · first linked 2018-12-11
  4. Adding simple email address obfuscation for your blog (2020)
    2 people · 2 mentions · first linked 2020-04-30
  5. Closed class hierarchies (Exploring the .NET 11 preview – Part 4)
    2 people · 2 mentions · first linked 2026-07-01

What Hacker News says?

  1. alexchro93 · 2022-07-22Recommends
    Neat page from David Fowler. I didn't know about that one. Thank you. To further explain why you want to use an AsyncLazy (or Lazy for synchronous programming) when working with ConcurrentDictionary I find this article to be helpful: https://andrewlock.net/making-getoradd-on-concurrentdictiona...

    Comment linking /making-getoradd-on-concurrentdictionary-thread-safe-using-lazy/

    on “Ask HN: What are some cool but obscure data structures you know about?”
  2. Submitted Understanding the Worst .NET Vulnerability as a story · 197 points

    HN discussion
  3. bpugh · 2022-11-23Recommends
    Git recently added a --update-refs option to rebase that makes dealing with this scenario a lot easier. This post does a good job explaining how to use it: https://andrewlock.net/working-with-stacked-branches-in-git-...

    Comment linking /working-with-stacked-branches-in-git-is-easier-with-update-refs/

    on “Extremely Linear Git History”
  4. Submitted Fixing an old .NET Core native library loading issue on Alpine as a story · 68 points

    HN discussion
  5. You can interactively rebase after the fact while preserving merges even. I usually work these days on stacked branches, and instead of using —-fixup I just commit with a dumb message. git rebase -i --rebase-merges --keep-base trunk This lets me reorganize commits, edit commit messages, split work into new branches, etc… When I add --update-refs into the mix it lets me do what I read are the biggest workflow improve…

    Comment linking /working-with-stacked-branches-in-git-is-easier-with-update-refs/

    on “Jujutsu for busy devs”
  6. Submitted Working with stacked branches in Git is easier with –update-refs (2022) as a story · 65 points

    HN discussion
  7. - Daniel Lemire: https://lemire.me/blog/ - Andrew Lock: https://andrewlock.net/ - Steve Gordon: https://www.stevejgordon.co.uk/ - Scott Helme: https://scotthelme.co.uk/ - Phil Haack: http://haacked.com/

    Comment linking /

    on “Ask HN: Great Blogs by Programmers”
  8. Submitted Companies complaining .NET moves too fast should just pay for post-EOL support as a story · 3 points

    HN discussion
  9. Another related effect of this is Protocol Ossification [0] which happens when implementers of a public API/Protocol surface area take implicit dependencies on common but not standardized behaviors of the API/Protocol implementation. That being said, you can take proactive steps to defeat this. For example, the default Hash for strings in .NET is randomly seeded each time a process starts[1] in order to strongly dis…

    Comment linking /why-is-string-gethashcode-different-each-time-i-run-my-program-in-net-core/

    on “Hyrum’s Law in Golang”
  10. Submitted Running .NET in the browser without Blazor as a story · 3 points

    HN discussion
  11. > - Somehow reviewers never seem to like the stack of PRs, my experience is they always react with disdain and/or confusion. Are people sending multiple branches of the stack for review at once? It should only ever be the "bottom" branch out-for-review at any time. > - Namely there would be review comments on the first PRs that then cause a cascade of merge conflicts in the follow-on PRs This can still happen in the…

    Comment linking /working-with-stacked-branches-in-git-is-easier-with-update-refs/

    on “I kind of like rebasing”
  12. Submitted A Quantum RNG for .NET: The quantum measurement problem and many-worlds approach as a story · 3 points

    HN discussion
  13. Sure you can! In fact you can do magic on stacked branches with `rebase --update-refs` that you can't do with merge: https://andrewlock.net/working-with-stacked-branches-in-git-...

    Comment linking /working-with-stacked-branches-in-git-is-easier-with-update-refs/

    on “I kind of like rebasing”
  14. Submitted Closed class hierarchies (Exploring the .NET 11 preview – Part 4) as a story · 2 points

    HN discussion
  15. I was reading this the other day when I came across this feature because I’m stacking PRs recently which I don’t usually do https://andrewlock.net/working-with-stacked-branches-in-git-... Another commenter posted this link which was a bit more succinct https://blog.hot-coffee.dev/en/blog/git_update_refs/ There isn’t much to it though, you just go to the branch and run git rebase with the update refs flag.

    Comment linking /working-with-stacked-branches-in-git-is-easier-with-update-refs/

    on “Stacked Diffs with git rebase —onto”
  16. Submitted dotNET (OK, C#) gets union types as a story · 2 points

    HN discussion
  17. If it helps, here's a related blog post but with a C# slant: https://andrewlock.net/using-strongly-typed-entity-ids-to-av... The author refers to using primitives everywhere as "primitive obsession", and proposed using types instead.

    Comment linking /using-strongly-typed-entity-ids-to-avoid-primitive-obsession-part-1

    on “Parsix: Parse Don't Validate”
  18. Submitted Working with stacked branches in Git (Part 1) as a story · 2 points

    HN discussion
  19. > At least when the controllers are all classes I can unit test them. So I've literally just jumped into this world, having never touched asp.net or similar before. I looked into how to test the controller side of things, and came across this[1] post arguing that unit testing controllers weren't as useful as integration testing them. Integration testing would definitely be useful, and something I will do, but I assu…

    Comment linking /should-you-unit-test-controllers-in-aspnetcore/

    on “Minimal APIs at a glance in .NET 6”
  20. Submitted Working with stacked branches in Git is easier with –update-refs as a story · 2 points

    HN discussion
  21. > How does the runtime know if you can “Deconstruct” an object? It implicit based on whether the object implements the appropriate method? Based on what I have read below, it's implicit; there's very little that the runtime has to know - it happens at compile time, with the compiler looking for a method with the name "Deconstruct" and the right type signature, and plugging that in during the compile. The compiler al…

    Comment linking /deconstructors-for-non-tuple-types-in-c-7-0/

    on “Tuples goodness in .NET 4.7.1”
  22. Submitted Rendering Blazor components to a string: Exploring the .NET 8 preview – Part 9 as a story · 2 points

    HN discussion
  23. If I understood you correctly, you want to propagate changes in a branch to other branches that depend on it? Then --update-refs is for you[1]. That way, you only need to update the "latest" branch. [1] https://andrewlock.net/working-with-stacked-branches-in-git-...

    Comment linking /working-with-stacked-branches-in-git-is-easier-with-update-refs/

    on “GitHub Stacked PRs”
  24. Submitted Working with stacked branches in Git is easier with –update-refs as a story · 2 points

    HN discussion
  25. Munksgaard · 2025-07-22Recommends
    Rebasing a stack of branches in git can also be pretty simple, with --update-refs. There's a good article here: https://andrewlock.net/working-with-stacked-branches-in-git-...

    Comment linking /working-with-stacked-branches-in-git-is-easier-with-update-refs/

    on “Show HN: ggc – A terminal-based Git CLI written in Go”
  26. Submitted Super-charging 'Git rebase' with 'Git absorb' as a story · 2 points

    HN discussion
  27. And dotnet run can now run single files of C# code, with the ability to import other projects and packages if needed. #!/usr/bin/dotnet run https://devblogs.microsoft.com/dotnet/announcing-dotnet-run-... https://andrewlock.net/exploring-dotnet-10-preview-features-...

    Comment linking /exploring-dotnet-10-preview-features-1-exploring-the-dotnet-run-app.cs/

    on “Stop Designing Languages. Write Libraries Instead (2016)”
  28. Submitted Using strongly-typed entity IDs to avoid primitive obsession (Part 1) as a story · 2 points

    HN discussion
  29. artimaeis · 2025-12-12Recommends
    You specified working with web and .NET Core (now just called .NET). Given the scope of modern .NET I don't think I can recommend a single book, but I've tried to order this in how I see them as most to least impactful for a dev. For web dev specific guidance it's hard to beat ASP.NET Core in Action by Andrew Lock. Check out Lock's blog too at https://andrewlock.net , it's a great source of new features happening in…

    Comment linking /

    on “Ask HN: Modern C# book for experienced developers?”
  30. Submitted Handy Docker commands for local development as a story · 2 points

    HN discussion

Search all of HN for andrewlock.net

Linked by the same people?