__/\\\\\\\\\\\\\____/\\\\____________/\\\\__/\\\\\\\\\\\\\\\_ _\/\\\/////////\\\_\/\\\\\\________/\\\\\\_\///////\\\/////__ _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_______\/\\\_______ _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\_______\/\\\_______ _\/\\\/////////____\/\\\__\///\\\/___\/\\\_______\/\\\_______ _\/\\\_____________\/\\\____\///_____\/\\\_______\/\\\_______ _\/\\\_____________\/\\\_____________\/\\\_______\/\\\_______ _\/\\\_____________\/\\\_____________\/\\\_______\/\\\_______ _\///______________\///______________\///________\///________ # Docs The ultimate thirst quencher and git workflow management tool ## Commands ### story [descriptor] Creates a `story` with a given `identifier` and `descriptor` and likewise creates the `story` on `origin`. Behind the scenes, `create` creates a branch named after the unique identifier. An identifier could be a ticket id or a short unique identifier. The branch is likewise created on `origin` and sets upstream locally to the origin branch. ### task | sub | subtask Creates a `subtask` with a given descriptor and an assigns a numberical incremental id to the `subtask`. Behind the scenes, this creates an empty commit with the descriptor as the message. Commits are chained in the chronological order in which their associated tasks are created. Changes to a `subtask` change the associated commit. This effectively decouples commits and time / order, and allows us to have more meaningful commits w/ meaningful commit messages in your commit logs. ### checkout [task_descriptor_regex] `Checkout` will list all open `stories` on your machine, as well as `master`. If a regex is provided, `checkout` will only display `stories` that match the regex. `Checkout` will then ask you to select one of the listed `stories` to check into, or automatically check you in if a regex is given and filters down to a singular `story`. Checking out will stash all unsaved changes and immediately check you into the selected `story`. Behind the scenes, `checkout` works via Git branching. Each `story` is a Git branch, and checking out into a `story` simply checks into that `story`'s branch. Before checkout takes place, all unstaged changes are stashed, and all saved changes are pushed to origin. A user should be able to switch between `stories` without having to worry about saving progress or losing mental flow. ### diff [task_id] [-a --all] Lists all the changes made in a given `task`. If no `task_id` is provided, then diff lists all the tasks which can be selected to display individual `task` diffs. If a -a parameter is appended, `diff` lists all changes on the current `task`. Behind the scenes, diff shows all the changes made on the given commit associated with the `task_id`. ### add ...files A literal alias to `git add`. Note by the author: Staging is a critical concept for effective context switching. Abstracting away staging would not be productive for feature workflow. ### commit [task_id] ...files [-n ] If a `task_id` is provided, then staged changes made are added to the given `task`. If a `-n` optional is provided, then a new `task` is created with the given "task_descriptor" and changes are added to the new `task`. Otherwise, a list of `tasks` are provided that the user can pick to add the staged changes to. ### mpr Makes a pull request for the given feature. Note by the author: this should either be configured to run a user provided script, or work directly with various Version Control vendors such as Git or BitBucket. ### log Logs commit history on the current branch. ##More to come in the near future!