An Open Source Project aimed at delivering super fast git experience.
Fgit is a CLI tool that is implemented on top of git aimed at delivering faster and smarter experience to user.
Look at the set of most frequently used git commands that any developer uses:
git add .
git commit -m"some commit message"
git push
Why to write these commands again and again and also, many other commands like these which we repetitively write as a set? What if you can simply write something like this:
fgit push "some commit msg" /* This will add ,commit and push */
This is just an Instance of how we can make the dev flow faster.
Consider another instance when you try to push your code without configuring upstream(Normally the first time). What does git tell you??
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
What if we can simply prompt the user to with something like this:
Whould you like to push to current working branch : master ?(Y/N)
To configure the origin we write something like this: git remote add orgin http://github.com/user/repository
To modify the configured origin we write git remote set-url origin https://github.com/user/another_repo2.git
What if we can simply write :
fgit set origin https://github.com/user/another_repo2.git
which can add origin if it does not exist and modify if it exists.
People often find it complicated to squash their commits. What if we can simply write fgit squash
to squash all commits into a single commit and avoid the compications of git rebase .
Well the above stated are just examples but there are many more things that can optimized in git and can be made much smarter. This project aims to figure out those possibilities and make optimizations to them to devliver a faster, smarter and better experince.
-
Download the
fgit-linux.zip
file from the Latest Release and Extract it. -
Go to CLI and execute the
install
file :./install
-
Test your install by relaunching the CLI and entering
fgit help
Installer Packaging and setup with Maven Assembly with auto release mechanism. - CI/CD : with Github Actions, to automatically generate assets and installer for all three OS(Linux,Windows and mac) on release. - Maintenance: Contribution guidelines would be included in Readme to raise an Issue or Open a Pull Request. - Auto trigger setup to be executed on PR to verify the successful build and requirements - Release: setup with Github Actions and auto release from CLI using tag and release. Installers are given out as a zip file available to download. The user has to simply extract the zip file and run the installer enclosed.