{"id":16288465,"url":"https://github.com/ryanwalder/how-to-git","last_synced_at":"2025-10-17T16:58:09.600Z","repository":{"id":55629734,"uuid":"152745008","full_name":"ryanwalder/how-to-git","owner":"ryanwalder","description":"Git repo to show how to use fetch/rebase/review PRs like a boss","archived":false,"fork":false,"pushed_at":"2020-12-16T22:44:49.000Z","size":24,"stargazers_count":1,"open_issues_count":2,"forks_count":22,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-04T00:02:34.734Z","etag":null,"topics":["git","howto","tutorial"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanwalder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-12T12:08:40.000Z","updated_at":"2022-06-28T17:07:24.000Z","dependencies_parsed_at":"2022-08-15T04:50:56.905Z","dependency_job_id":null,"html_url":"https://github.com/ryanwalder/how-to-git","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanwalder%2Fhow-to-git","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanwalder%2Fhow-to-git/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanwalder%2Fhow-to-git/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanwalder%2Fhow-to-git/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanwalder","download_url":"https://codeload.github.com/ryanwalder/how-to-git/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247318215,"owners_count":20919454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["git","howto","tutorial"],"created_at":"2024-10-10T19:48:23.733Z","updated_at":"2025-10-17T16:58:04.538Z","avatar_url":"https://github.com/ryanwalder.png","language":null,"readme":"# how-to-git\n\nA repoo with some branches and some pull requests designed to show how to:\n\n* Make good commits\n    * Not too much sausage (squash commits)\n    * Not too little sausage (splitt commits)\n* Make good Pull Requests\n* Review Pull Requests like a boss\n* Use the Fetch \u0026 Rebase method of working (rather than pull)\n\nDesigned to be used in conjunction with my [How to git](https://docs.google.com/presentation/d/1_990RTb0fWJnp_0Z6sSUvCOn_dR2k2Ko5QEju753en4/edit?usp=sharing) slides.\n\n## Notes\n\nObviously some of this is very opinionated. I am working to the following principles when making this guide:\n\n### Good commit messages\n\n[This post](https://chris.beams.io/posts/git-commit/) by [Chris Beams](https://github.com/cbeams) delves deep into what makes a good commit message and why.\n\n### Good commits\n\nWe don't need to see how the sausage is made. A good commit should be the code needed for a single logical change. Nothing more, nothing less.\n\n### Making pull requests\n\nMuch like the Good commits section above good Pull Requests make everyone's lives easier.\n\n## Handy git settings\n\nThese are setting which improve over the base setup\n\n### Always fast forward merge\n\nAs discussed in the slides, merge commits are ugly but that doesn't mean we can't still use the `merge` functionality of git.\n\nBy default merge will try and [fast-forward](https://sandofsky.com/images/fast_forward.pdf) commits without creating a merge commit if possible but will create a merge commit if needed.\n\nWith this setting it means it'll throw an error rather create the merge commit which give you the chance to fix the thing causing the merge commit before it happens, keeping you log nice and clean.\n\n\n```\n$ git config --global merge.ff only\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanwalder%2Fhow-to-git","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanwalder%2Fhow-to-git","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanwalder%2Fhow-to-git/lists"}