GitConvex is a web app for managing your git repositories. It is supported by Linux, Mac OS and Windows. The latest version of GitConvex supports git features such as initializing and tracking a git repo, staging and unstaging changes, committing changes, pushing changes to the selected remote and so on. The main goal of this platform is to act as a web-based alternative for native git GUI clients and also to provide an option for managing git repos which are residing in servers with no GUI. Gitconvex is also available as a docker image along with the yaml files included in the repo for deploying it with k8s or docker swarm, which makes it a viable option for managing git repos residing within containers.
Requirements
Download Options
Features available
How to use
- Git (Version 2.20+)
If you wish to build the application from source then install,
-
Option-1: Directly clone the repo from GitHub
git clone https://github.com/neel1996/gitconvex
-
Option-2: If you are into docker, then there is also a docker image available for gitconvex
docker pull itassistors/gitconvex
-
Option-3: Downloading the zip file from the releases.
## Extract the downloaded zip file and execute the commands
$ cd gitconvex
# for Mac & Linux
$ make build
$ ./dist/gitconvex
# for Windows
$ ./make.bat build
$ ./dist/gitconvex.exe
- Visualizing basic repo stats such as active branch, active remotes, number of files tracked etc
- Tracking modified files
- Creating new branches (provided there are no diverging changes)
- Initializing git inside a new repo and adding it to the platform tracker on the go
- Secure clone option with authentication
- File difference tracker with syntax highlighting
- File explorer with repository navigation features
- Code view capability from in-build repository explorer
- Commit log viewer
- Looking up desired commit logs using search feature
- Basic git operations such as staging, un-staging, committing and pushing to remote repo.
- Repositories - To check tracked files changes, line-based changes with syntax highlighting and git operations (staging, un-staging, committing changes and pushing changed to remote)
- Compare - To compare the branches and commits for the selected repository.
- Settings - To check and edit internal data file, to remove a repo from GitConvex and to update the active port.
- Help - Includes documentation link and various options to report an issue or to submit feedback.
-
Enter repo name and paste the repo path. If the folder is not a git repo then check the "Check this if the folder is not a git repo" checkbox to initialize git.
-
The newly added repo will be displayed as a card in the dashboard
- Click on the repo card to get the following details about the repo
- The list of branches
- Remote management
- Commit logs
- Latest commit
- Active branch and available local branches
- Remote repo URL and host
- Files and folders tracked by git
The repo detail view also provides features for performing the following operations,
- Adding a new branch
- Adding/Editing/Deleting a remote
- Pulling changes from remote
- Fetching changes from remote
- Directory navigator to lookup all files and folders within the repo
- Code view for valid files from the file explorer view
- Loading commit logs dynamically
- With commit log searchbar, any commit log can be looked up using its commit message or commit hash or author name who created that commit.
- The Remote management pane lets you add new remotes to the target repo, edit the remote URLs of the exsiting remotes and also to delete existing remotes.
Note: In a newly initialized git repo, the newly added branch will be considered by git only after an initial commit
- The Repository menu has three sections: File view, Git difference and Git operations, which will be displayed based on the selected repo.
-
Git operations module lets you handle three basic git operations (Stage all changes, commit changes, push to remote). Below this option, the files will be displayed and the files can be staged individually using the "Add" button or as a whole using the "stage all changes".
-
The staged files can be removed individually or it can be removed all at once.
-
The staged changes can be committed using the Commit changes option. This will display a pop-up with all the staged files and it requires a commit message to successfully commit the changes. The commit messages can either be a single line message or a multi-line message
-
Push to remote option pushes all commits to the selected remote host. The pop-up displayed will display the commits which are in queue to be pushed to the remote repository.
In "Git Difference" click on the modified file to see the difference. The platform has syntax highlighting available for a limited set of languages
-
The Compare menu has two sections: Branch compare and Commit compare.
-
Branch compare - Compares any two branches based on the selected base branch and compare branch. It displays difference between the selected branches.
- Commit compare - Compares any two commits based on the selected base commit and compare commit. It shows file difference between the selected commits.
-
Settings in the left pane has three sections (Server data file, saved repos, Active GitConvex port number).
-
Server data file stores repo details such as the repo path, timestamp and the unique ID assigned to each repo. The data file must be an accessible JSON file with read / write permissions set to it. Also make sure you enter the full path for the file. E.g: /opt/my_data/data-file.json
-
In the saved repos section, added repo(s) can be deleted permanently from GitConvex.
-
Saved repo name can be changed in this section.
Note that, this will only remove the repo from GitConvex records and it will not perform an actual folder delete operation
- The port number can be updated to an available alternate port. Make sure that the port is not in use. The app needs to be restarted for the port change to take effect.