{"id":15463499,"url":"https://github.com/hixie/usable-git","last_synced_at":"2025-04-22T10:19:40.889Z","repository":{"id":98043369,"uuid":"65047046","full_name":"Hixie/usable-git","owner":"Hixie","description":"A bunch of shell scripts that make using git bearable","archived":false,"fork":false,"pushed_at":"2024-03-26T17:25:54.000Z","size":15,"stargazers_count":61,"open_issues_count":1,"forks_count":9,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-29T14:11:17.577Z","etag":null,"topics":["git"],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/Hixie.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}},"created_at":"2016-08-05T20:28:50.000Z","updated_at":"2025-02-28T15:23:56.000Z","dependencies_parsed_at":"2024-11-08T17:00:34.419Z","dependency_job_id":"8c4f2d4c-38a2-4a86-b24d-aeda6ba1724b","html_url":"https://github.com/Hixie/usable-git","commit_stats":{"total_commits":16,"total_committers":2,"mean_commits":8.0,"dds":0.125,"last_synced_commit":"0f5f7f48468340645ef6e6d11815f0d4016123c8"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hixie%2Fusable-git","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hixie%2Fusable-git/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hixie%2Fusable-git/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hixie%2Fusable-git/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hixie","download_url":"https://codeload.github.com/Hixie/usable-git/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250221194,"owners_count":21394679,"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"],"created_at":"2024-10-02T00:21:34.312Z","updated_at":"2025-04-22T10:19:40.858Z","avatar_url":"https://github.com/Hixie.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# usable-git\nA bunch of shell scripts that make using git bearable.\n\nThis is for working with branches on forks of projects, not directly\ncommiting to a project's main branch. It's expected that your changes\nwill go through the GitHub PR process to actually end up commited to\nthe project.\n\n## Installation\n\nRun the following commands in a terminal:\n\n```bash\nmkdir -p ~/bin\ncd ~/bin\ngit clone git@github.com:Hixie/usable-git\necho 'export PATH=$PATH:~/bin/usable-git' \u003e\u003e ~/.bash_profile\ngit config --global gpg.format ssh\ngit config --global user.signingkey ~/.ssh/id_rsa.pub ; use the same key you use to push to GitHub\n```\n\nThen, open a new terminal.\n\n## Other git config options you might want\n\n```bash\n# remember merge conflict fixes\ngit config --global rerere.enabled true\n```\n\n## Usage:\n\n`clone flutter engine me`\n\n  Prepares a local checkout of your fork of flutter/engine (where your\n  fork is in me/engine).\n\n\n`br`\n\n  List current branches.\n\n\n`new foo`\n\n  Create a branch `foo`.\n\n\n`d`\n\n  Show a diff of your changes on the current branch.\n\n\n`add quux.dart baz.dart`\n\n  Add the local files to the repo (stage for commit).\n\n\n`clean`\n\n  Show you what files would be deleted by running `git clean`, and\n  gives you instructions for doing so.\n\n\n`commit`\n\n  Commit the current changes using emacsclient to write the commit message.\n\n\n`amend`\n\n  Update the current commit with new changes.\n\n\n`save`\n\n  Commit your current changes with the message \"wip\" and upload it to\n  GitHub on your fork, merging any remote changes in as well.\n\n\n`push`\n\n  Send the current branch to GitHub.\n\n\n`publish`\n\n  Push your current main branch to your GitHub main branch.\n\n\n`n bar`\n\n  Rename the current branch to `bar`.\n\n\n`bb main`\n\n  Switch to the `main` branch and pull changes.\n\n\n`b bar`\n\n  Switch to the `bar` branch without pulling changes.\n\n\n`pull`\n\n  Pull the changes from upstream.\n\n\n`fix quux.dart`\n\n  Run emacsclient on quux.dart to fix merge conflicts.\n\n\n`forget`\n\n  Throw away local changes since last commit/amend.\n\n\n`revert quux.dart baz.dart`\n\n  Throw away local changes vs upstream.\n\n\n`nuke`\n\n  Delete the current branch.\n\n## Configuration\n\nIf you're using emacs, the following is a good start for a `~/.gitconfig` file:\n\n```\n[core]\n        autocrlf = false\n        filemode = false\n        editor = emacsclient\n[branch]\n        autosetuprebase = always\n[pager]\n       \tdiff = false\n        commit = false\n        log = false\n        cl = false\n        blame = false\n        merge = false\n        rebase = false\n        help = false\n        show = false\n        reflog = false\n        grep = false\n[push]\n        default = simple\n[credential]\n        helper = cache --timeout=315569000\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhixie%2Fusable-git","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhixie%2Fusable-git","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhixie%2Fusable-git/lists"}