{"id":15048238,"url":"https://github.com/github/training-utils","last_synced_at":"2025-02-25T09:15:13.034Z","repository":{"id":25878688,"uuid":"29318955","full_name":"github/training-utils","owner":"github","description":"A series of Bash and ZShell scripts useful when teaching about git and GitHub","archived":false,"fork":false,"pushed_at":"2024-01-25T14:13:00.000Z","size":919,"stargazers_count":144,"open_issues_count":2,"forks_count":42,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-02-18T08:08:54.882Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/github.png","metadata":{"files":{"readme":"README.md","changelog":"historytailbash","contributing":null,"funding":null,"license":"LICENSE.txt","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":"2015-01-15T21:25:51.000Z","updated_at":"2025-02-03T21:44:21.000Z","dependencies_parsed_at":"2024-01-25T15:42:54.302Z","dependency_job_id":null,"html_url":"https://github.com/github/training-utils","commit_stats":{"total_commits":159,"total_committers":16,"mean_commits":9.9375,"dds":0.6981132075471699,"last_synced_commit":"0efbb8ba216a029c104a1c4de78ab3943f8cd2db"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Ftraining-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Ftraining-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Ftraining-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Ftraining-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/github","download_url":"https://codeload.github.com/github/training-utils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240636652,"owners_count":19832922,"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":[],"created_at":"2024-09-24T21:09:40.555Z","updated_at":"2025-02-25T09:15:12.973Z","avatar_url":"https://github.com/github.png","language":"Ruby","readme":"# Training::Utils\n\nThis is a package of git- and github-training scripts into an easily-installed package. This collection of utilities originated [here](https://github.com/matthewmccullough/scripts).\n\n## Installation\n\nIf you have Ruby \u003e= 1.9 installed, you can install these scripts into a directory in your `$PATH` by running:\n\n```\n$ script/bootstrap\n```\n\n## Usage\n\n#### `generaterandomchanges \u003cN\u003e \u003cbase\u003e \u003cextension\u003e`\n\nGenerates **N** new **commits**, the content of each is a new file named \"`\u003cbase\u003e\u003cI\u003e.\u003cextension\u003e`\" with some random text.\n\n```\n$ generaterandomchanges 3 file txt\n[master f377b54] A random change of 27129 to file1.txt\n2 files changed, 7 insertions(+), 1 deletion(-)\ncreate mode 100644 file1.txt\n[master fd0965c] A random change of 15808 to file2.txt\n1 file changed, 1 insertion(+)\ncreate mode 100644 file2.txt\n[master a704698] A random change of 26224 to file3.txt\n1 file changed, 1 insertion(+)\ncreate mode 100644 file3.txt\n\n$ ls\nREADME.md  file1.txt  file2.txt  file3.txt\n\n$ git log --oneline\na704698 A random change of 26224 to file3.txt\nfd0965c A random change of 15808 to file2.txt\nf377b54 A random change of 27129 to file1.txt\nec9bce1 Add readme\n```\n\n#### `generaterandomfiles \u003cN\u003e \u003cbase\u003e \u003cextension\u003e`\n\nGenerates **N** new **files**, each named \"`\u003cbase\u003e\u003cI\u003e.\u003cextension\u003e`\" with some random text.\n\n```\n$ generaterandomfiles 3 stuff txt\n\n$ ls\nREADME.md  stuff1.txt  stuff2.txt  stuff3.txt\n\n$ git log --oneline\nec9bce1 Add readme\n\n$ cat stuff1.txt\nSome random text: 10660\n```\n\n#### `git-graphlive \u003cN optional, 10 default\u003e`\n\nPerpetually loop `git --no-pager log -\u003cN\u003e --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s' --abbrev-commit --date=relative`. It's like \"tail -f\" for `git log`. It's sometimes useful to have this on a split screen, showing the git one-line, ASCII art git graph.\n\n```\n$ git graphlive 5\n* 6cad0b4 - (HEAD, master) A random change of 19964 to file30.txt\n* c9fd401 - A random change of 16742 to file29.txt\n* d5794af - A random change of 22469 to file28.txt\n* b2110a3 - A random change of 32088 to file27.txt\n* 75d01a9 - A random change of 12572 to file26.txt\n```\n\n#### `historytailbash` and `historytailzsh`\n\nPerpetually loop through `history`. It's like `tail -f` for history. Comes in `bash` and `zsh` flavors. It's sometimes useful to have this on a split screen, showing the recent history of commands.\n\n#### `transpose \u003cfile\u003e.csv`\n\nGenerate a transposed `*.csv` file from an input file.\n\n#### `treelive \u003cdepth\u003e`\n\nPerpetually loop `tree`, up to `depth` folders deep in the hierarchy.\n\n#### `welcome \u003cname\u003e`\n\nPrints a welcome message:\n\n```\n-------------------------------------------------\nWelcome to class on: Wed Jan 14 17:00:35 CST 2015\nI'm Instructor Name Here, your instructor\n-------------------------------------------------\n```\n\n## Other Useful Apps\n\nWhen training, we use lots of other apps. Here are some of our favorites: \n- [Caffeine](https://itunes.apple.com/us/app/caffeine/id411246225)\n- [Mouseposé](https://itunes.apple.com/app/mousepose/id405904955?mt=12)\n- [ScreenFlow](http://www.telestream.net/screenflow/overview.htm) for recording screen casts\n- Skitch classic for Mac OSX (hard DMG to find nowadays)\n- [Quickres](http://www.quickresapp.com/)\n- [Switch ResX](http://www.madrau.com/)\n- [Shush](https://itunes.apple.com/us/app/shush-microphone-manager/id496437906?mt=12)\n- [AirSketch](http://www.qrayon.com/home/airsketch/)\n- [A Web Whiteboard](https://awwapp.com/)\n- [Duet Display](http://www.duetdisplay.com/)\n- [Slate](https://github.com/jigish/slate) (looks like it stopped getting commits in 2013, but I still use it\n- [Divvy](http://mizage.com/divvy/)\n- [Better Snap Tool](https://itunes.apple.com/us/app/bettersnaptool/id417375580?mt=12)\n\n## Contributing\n\n1. Fork it ( https://github.com/github/training-utils/fork )\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n","funding_links":[],"categories":["Ruby","Workshops"],"sub_categories":["Teaching"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgithub%2Ftraining-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgithub%2Ftraining-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgithub%2Ftraining-utils/lists"}