fungit v1.5.22
fungit
The easiest way to use git. On any platform. Anywhere.
Git is known for being a versatile distributed source control system that is a staple of many individuals, communities, and even for the City of Chattanooga to crowd source bicycle parking locations. However, it is not known for userfriendliness or easy learning curve.
fungit brings user friendliness to git without sacrificing the versatility of git.
- Clean and intuitive UI that makes it easy to understand git.
- Runs on any platform that node.js & git supports.
- Web-based, meaning you can run it on your cloud/pure shell machine and use the ui from your browser (just browse to http://your-cloud-machine.com:8448).
- Works well with GitHub.
- Gerrit integration through plugin: https://github.com/ungtb10d/fungit-gerrit
Quick intro to fungit: https://youtu.be/hkBVAi3oKvo
Installing
Requires node.js (≥ 14), npm (≥ 6.14.16, comes with node.js) and git (≥ 2.34.x). To install fungit just type:
npm install -g fungit
NOTE: If your system requires root access to install global npm packages, make sure you use the -H flag:
sudo -H npm install -g fungit
Prebuilt electron packages are available here (git is still required).
Using
Anywhere you want to start, just type:
fungit
This will launch the server and open up a browser with the ui.
Configuring
Put a configuration file called .fungitrc in your home directory (/home/USERNAME
on *nix, C:/Users/USERNAME/
on windows). Configuration file must be in json format. See source/config.js for available options.
You can also override configuration variables at launch by specifying them as command line arguments; fungit --port=8080
. To disable boolean features use --no: fungit --no-autoFetch
.
Example of ~/.fungitrc
configuration file to change default port and enable bugtracking:
{
"port": 8080,
"bugtracking": true
}
PGP
Git and github both supports PGP signing. Within fungit these features can be enabled via doing either one of the below two actions.
git config --global commit.gpgsign true
(or without--global
at the repo)- Add
isForceGPGSign: true
tofungit.rc
file
Currently, fungit DOES NOT support GPG authentication! While git allows robust programmatic authentication via credential-helper
, I could not find an easy way to do something equivalent with GPG.
Therefore, password-less gpg authentication or 3rd party gpg password must be configured when using fungit to commit with gpg. Below are several way to enable password-less gpg authentication for various OSs.
- Cache GnuPG passphrase
- gpg-agent with pinentry-mac
brew install gnupg gpg-agent pinentry-mac
echo "test" | gpg --clearsign
# See gpg authentication prompt when gpg is accessed.- Optionally you can save it to keychain.
I understand this is not convenient, but security is hard. And I'd much rather have bit of inconvenience than fungit having security exposure.
External Merge Tools
If you have your own merge tool that you would like to use, such as Kaleidoscope or p4merge, you can configure fungit to use it. See MERGETOOL.md.
Auto Refresh
fungit will watch git directory recursively upon page view and automatically refresh contents on git operations or changes on files that are not configured to be ignored in .gitignore
.
Text Editor Integrations
- atom-fungit for Atom.io by @codingtwinky
- brackets-fungit for Brackets.io by @Hirse
- Codiad-Openfungit for Codiad by @viharm
Developing
See CONTRIBUTING.md.
Maintainers
- ungtb10d Fredrik's Patreon page for donations
- Jung-Kim JK's (codingtwinky) Patreon page for donations
- campersau
Known issues
- If you're running MacOSX Mavericks and fungit crashes after a few seconds; try updating npm and node. See #259 and #249 for details.
- Ubuntu users may have trouble installing because the node executable is named differently on Ubuntu, see #401 for details.
- Debian Wheezy's supported git and nodejs packages are too old, therefore download newest git and nodejs tarballs and build from source.
- Adblocker may block fungit! Some ad blockers, such as Adblock plus and uBlock, don't like localhost api calls and assume that it is a cross domain attack. Please whitelist
{localhost|127.0.0.1|$fungitURL}:{fungit port number}
. #887 #892 - Running git in non English language will result in unexpected behavior! fungit parses git command results in English to detect repos' states and this causes confusion when git results are not in English. #959
Changelog
See CHANGELOG.md.
License (MIT)
See LICENSE.md. To read about the Faircode experiment go to #974. fungit is now once again MIT.
1 year ago