<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/adamj/best-of/2024/09" -->

---
title: Best Adam Johnson posts — September 2024 | daily.dev
description: The most upvoted Adam Johnson posts from September 2024, curated by the daily.dev community.
canonical: https://daily.dev/sources/adamj/best-of/2024/09
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/adamj/best-of/2024/09
og:type: website
og:site_name: daily.dev
og:title: Best Adam Johnson posts — September 2024 | daily.dev
og:description: The most upvoted Adam Johnson posts from September 2024, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of Adam Johnson — September 2024

1. 1  
[](https://daily.dev/posts/git-avoid-reset---hard-use-reset---keep-instead-q1eorpmfw "Git: avoid reset --hard, use reset --keep instead")  
Article  
![Avatar of adamj](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/bf70f4401c284aa5b628d1966029342c)Adam Johnson · 2y  
Git: avoid reset --hard, use reset --keep instead  
When undoing commits in Git, it's recommended to use 'git reset --keep' instead of 'git reset --hard' to avoid losing uncommitted changes. 'reset --hard' is highly destructive as it discards unsaved work, making recovery difficult. In contrast, 'reset --keep' preserves uncommitted changes and fails if it jeopardizes unsaved work. The post provides practical examples and suggests setting an alias for convenience.  
61  
4
2. 2  
[](https://daily.dev/posts/python-my-new-uv-setup-for-development-9tp8clara "Python: my new uv setup for development")  
Article  
![Avatar of adamj](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/bf70f4401c284aa5b628d1966029342c)Adam Johnson · 2y  
Python: my new uv setup for development  
uv is a new, speedy Python packaging tool that now manages both Python versions and Python-powered tools. The author switched to uv for Python and tool management, replacing Mise, pipx, and Pip, to streamline their development workflow. They use Ansible to automate the setup, including installing and upgrading Python versions and tools, and cleaning up old cache entries. The post provides specific Ansible tasks for these operations.  
48  
2

[See all Adam Johnson archives](/sources/adamj/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/sources/adamj/best-of/2024/09#page","url":"https://daily.dev/sources/adamj/best-of/2024/09","name":"Best Adam Johnson Posts — September 2024","description":"The most upvoted Adam Johnson posts from September 2024, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/adamj/best-of/2024/09#items","numberOfItems":2,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/git-avoid-reset---hard-use-reset---keep-instead-q1eorpmfw","name":"Git: avoid reset --hard, use reset --keep instead"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/python-my-new-uv-setup-for-development-9tp8clara","name":"Python: my new uv setup for development"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Sources","item":"https://daily.dev/sources"},{"@type":"ListItem","position":3,"name":"Adam Johnson","item":"https://daily.dev/sources/adamj"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/adamj/best-of"},{"@type":"ListItem","position":5,"name":"September 2024"}]}]}
```

