This repository is no longer maintained! 😦
This package allows users to easily manage GitHub on their machines. Some features are aimed at developers while some are aiming novice users/non developers.
Examples of what can be done:
- commit, stage & push operation at once via interactive CLI
- pull (for current, multiple or all branches)
- clone a repository
- generate an SSH key and automatically work with it inside of
git-assist
- generate a GPG key and automatically work with it inside of
git-assist
- configure user globally or for a repository
- setup
git-assist
so that it auto-pulls from multiple repository. This can also be scheduled to run on machine startup or following a cron pattern
via NPM (recommended)
npm i -g git-assist
You will need to have node
and npm
installed on your machine for this to work.
Some other dependencies are also required for some of the utilities contained in this package to work. See here.
via install script
If you don't feel comfortable with the command line/you don't have npm
installed on your machine, you can use the install script (install.sh
) available in the easy-use folder (see docs to know how to use them).
To install git-assist
following this method:
- download the appropriate collection of scripts for your OS following the appropriated link below
- extract this collection on your machine
- double click on
install.sh
This will install git-assist
on your machine as well as all necessary system dependencies.
This script is part of a collection of scripts available here:
Tip: you can use update.sh
when git-assist
is installed to update it to the latest version if yours is outdated.
- via CLI: you can type
git-assist
to enter interactive mode. Otherwise if you know which command to call simply dogit-assist <command> <arguments>
- non-CLI usage: you can copy files from the easy-use folder and use them directly inside of your repository (see docs to know how to use them)
If needed, call git-assist [-h, --help] <function_name>
in order to get access to the help for git-assist
or any of its utilities!
Important: when using two-factor authentication and https protocol to work with GitHub, you should generate an access token in place of your password to be able to authenticate.
You will find the process for creating an access token for your account here.
Note: when choosing options for your token, you can go with repo (all checkbox), admin:repo_hook (all checkbox) and delete_repo.
Until work has been done to automate dependencies installation on package installation (or suppress some of them), here are the dependencies that needs to be on your computer for this utility to work correctly:
git
gpg
(to generate GPG keys)ssh
(to generate ssh keys)- Linux only:
libsecret
&gnome-keyring
Password management is handled via keytar
(check it out here). keytar
is using system specific solutions in order to store your password in a secure way. This allows git-assist
to reuse your saved password when working with GitHub via HTTPS and not prompt you every time for it.
For Linux users: you may encounter some undesired behavior if you use git-assist
without a preconfigured keyring to store your passwords. It seems like keytar
is creating for you a default keyring with a set password if no default keyring was found on first run. This can lead users to not being able to unlock this keyring afterward and therefore freezes some applications.
Below are details on how to handle/prevent this situation.
Please install seahorse
on your system via your package manager to get access to a frontend to manage your keyrings easily.
It is recommended to perform this step before working with git-assist
if you don't have a keyring set up on your machine already.
- start
seahorse
via your application manager - click File > New
- type
login
when prompted for the name of the keyring - type a password that you will remember when prompted for a password
- back on the main page of
seahorse
, right click on your newly created keyring and click on Set as default
If you started using git-assist
with no keyring configured it is possible that some of your apps may be frozen because the keyring would be locked (since you don't know the password to unlock it).
- go into
~/.local/share/keyrings
either via your console and via your file explorer - delete the file containing
default
in its name and ending with.keyring
(via terminal or file explorer) - start
seahorse
via your application manager - right click on the keyring containing
default
in its name and click onDelete
- when prompted, confirm deletion
- follow the steps 2 to 5 in the section above to create a new default keyring
Feature | Config | SSH | GPG | Clone | Push | Pull | Auto-pull | Logs | Help | Version |
---|---|---|---|---|---|---|---|---|---|---|
Description | Setup git user |
Manipulate SSH keys | Manipulate GPG key | Clone repositories | Easy push (git add/commit/push all in one via interactive CLI) | Easy pull (interactive CLI) | Automatically pull for repositories (on machine startup/schedule/etc). Offers configuration options | Prints git-assist logs |
Get help about git-assist |
Print current installed version of git-assist |
Command | config |
ssh |
gpg |
clone |
push |
pull |
auto-pull |
logs |
--help or -h |
--version or -v |
Arguments | -g |
--generate : generate a new key for given user, --list : list all keys generated via git-assist , --delete : delete one or multiple keys generated via git-assist |
--generate : generate a new key for given user, --list : list all keys generated via git-assist , --delete : delete one or multiple keys generated via git-assist |
--config or -c |
[file1, file2, ..., fileN] : target specific log, --watch [file] : watch a given log file, --purge [file1, file2, ..., fileN] : purge given log file |
|||||
Status | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Windows | Linux | MacOS |
---|---|---|
❓ | ✔️ | ⏲ |
Icon | Meaning |
---|---|
✔️ | Implemented/working |
⏲ | Work in progress |
❓ | Not tested |
❌ | Not implemented/not working |