{"id":23763846,"url":"https://github.com/tomashubelbauer/git-config","last_synced_at":"2026-05-07T10:34:16.075Z","repository":{"id":107986106,"uuid":"175610560","full_name":"TomasHubelbauer/git-config","owner":"TomasHubelbauer","description":"My preferred Git configuration","archived":false,"fork":false,"pushed_at":"2022-04-14T20:19:46.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-24T20:44:35.559Z","etag":null,"topics":["dotfiles","git","git-config","git-configuration"],"latest_commit_sha":null,"homepage":"","language":"Markdown","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TomasHubelbauer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-03-14T11:42:57.000Z","updated_at":"2022-04-16T13:24:08.000Z","dependencies_parsed_at":"2024-06-04T13:09:01.192Z","dependency_job_id":null,"html_url":"https://github.com/TomasHubelbauer/git-config","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TomasHubelbauer/git-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasHubelbauer%2Fgit-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasHubelbauer%2Fgit-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasHubelbauer%2Fgit-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasHubelbauer%2Fgit-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TomasHubelbauer","download_url":"https://codeload.github.com/TomasHubelbauer/git-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasHubelbauer%2Fgit-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32733653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles","git","git-config","git-configuration"],"created_at":"2024-12-31T22:13:42.120Z","updated_at":"2026-05-07T10:34:16.058Z","avatar_url":"https://github.com/TomasHubelbauer.png","language":"Markdown","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git configuration\n\n[**WEB**](https://tomashubelbauer.github.io/git-config)\n\nMy preferred Git configuration.\n\n```\ngit config --global user.email \"tomas@hubelbauer.net\"\ngit config --global user.name \"Tomas Hubelbauer\"\ngit config --global pull.ff only\ngit config --global merge.ff only\n```\n\n`pull.ff` causes non-fast-forward merges (the ones that would create a merge commit when doing `git pull`) to error\ninstead of creating a merge commit. This means that if I forget to run `git pull --ff-only` I will be reminded to do\nthat with that error instead of getting a merge commit which I would have to undo then. Of course most of the time\nI (or my IDE) am actually doing `git pull --rebase` so this is for when I zone out while using the CLI to pull.\n\nI am not sure if `merge.ff` is redundant here or not so I put it in just in case because it is faster than testing it.\n\n## Configuring Identity\n\nhttps://help.github.com/en/github/getting-started-with-github/set-up-git\n\nThis article from GitHub is absolute garbage and this is done rarely enough\nfor me to reliably forget, so here goes:\n\n- Download and configure Git as per the above\n- Clone a repository (can be this one for a test)\n- Make a change, add it to stage, commit it and push\n- Observe a GitHub credential manager pop up\n- Enter GitHub username and a PAT (not the password!)\n- Enter username and the PAT to the CLI prompt if asked\n  (Sometimes the graphical prompt fails after the 2FA step)\n\nNever does it say to use the PAT and not the GitHub account password.\nI don't have a problem with the fact that PAT needs to be used, it makes\nperfect sense, but unless you already know and remember this, you will be\nstruggling for a long time! For novices, this must be beyond frustrating\nand even for me as an experienced Git user, it still sucks to have to\nremember this.\n\n## To-Do\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomashubelbauer%2Fgit-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomashubelbauer%2Fgit-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomashubelbauer%2Fgit-config/lists"}