Gittyup is a graphical Git client designed to help you understand and manage your source code history.
Gittyup is a graphical Git client designed to help users understand and manage their source code history effectively.
Key Features:
Visual commit history explorer for an intuitive overview of project changes.
Advanced branch management tools, including creation, deletion, merging, and rebasing.
Comprehensive diff viewer with line-by-line comparison capabilities.
Blame view to track modifications and contributions across the repository's evolution.
Integration with common Git workflows, including pull requests, merges, and stash operations.
Cross-platform support for Linux, Windows, macOS, and other operating systems.
Audience & Benefit:
Ideal for developers and teams working on complex projects to gain better control over their code history. Gittyup simplifies the process of navigating, analyzing, and managing Git repositories through an intuitive graphical interface, enabling users to focus on productive development workflows without getting bogged down by command-line complexities.
Gittyup can be installed via winget for easy setup on supported platforms.
README
Gittyup
Gittyup is a graphical Git client designed to help you understand and manage your source code history. The latest stable release
is available either as pre-built flatpak for Linux, 32 / 64 binary for Windows, macOS,
or can be built from source by following the directions below.
Report bugs in Gittyup by opening an issue in the
issue tracker.
Remember to search for existing issues before creating a new one.
If you still need help, check out our Matrix channel
Gittyup:matrix.org.
Build Environment
C++11 compiler
Windows - MSVC >= 2017 recommended
Linux - GCC >= 6.2 recommended
macOS - Xcode >= 10.1 recommended
CMake >= 3.3.1
Ninja (optional)
Dependencies
External dependencies can be satisfied by system libraries or installed
separately. Included dependencies are submodules of this repository. Some
submodules are optional or may also be satisfied by system libraries.
External Dependencies
Qt (required >= 5.12)
Included Dependencies
libgit2 (required)
cmark (required)
git (only needed for the credential helpers)
libssh2 (needed by libgit2 for SSH support)
openssl (needed by libssh2 and libgit2 on some platforms)
Note that building OpenSSL on Windows requires Perl and NASM.
How to Build
Initialize Submodules
git submodule init
git submodule update --depth 1
Build OpenSSL
# Start from root of gittyup repo.
cd dep/openssl/openssl
Windows:
perl Configure VC-WIN64A
nmake
macOS (Intel):
./Configure darwin64-x86_64-cc no-shared
make
macOS (Apple Silicon)
./Configure darwin64-arm64-cc no-shared
make
Linux:
./config -fPIC
make
Configure Build
# Start from root of gittyup repo.
mkdir -p build/release
cd build/release
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../..
If you have Qt installed in a non-standard location, you may have to
specify the path to Qt by passing -DCMAKE_PREFIX_PATH=
where `` points to the Qt install directory that contains
bin, lib, etc.
Build
ninja
A Convenient Shell Script for Ubuntu is available here, and will install all the necessary prerequisites, and build a release version for immediate use.
How to Install
Linux
The easiest way to install Gittyup is by using Flatpak.
Arch Linux
Install the gittyup package from the Arch User Repository.
git clone https://aur.archlinux.org/gittyup.git
cd gittyup
makepkg -si
Or use an AUR helper.
Install gittyup-git for the VCS build.
If you want a more pure console use, this script run flatpak version disowning the process and silence the output pushing it to /dev/null.
Just save the script somewhere in your path, for example /usr/bin (or ~/.local/bin if you have exported it), give execution permissions chmod +x, and run gittyup from your terminal.
#!/bin/bash
DIR=$(dirname "${BASH_SOURCE[0]}")
function run_disown() {
"$@" & disown
}
function run_disown_silence(){
run_disown "$@" 1>/dev/null 2>/dev/null
}
run_disown_silence flatpak run com.github.Murmele.Gittyup
How to Contribute
We welcome contributions of all kinds, including bug fixes, new features,
documentation and translations. By contributing, you agree to release
your contributions under the terms of the license.
Contribute by following the typical
GitHub workflow
for pull requests. Fork the repository and make changes on a new named
branch. Create pull requests against the master branch. Follow the
seven guidelines to writing a
great commit message.
Prior to committing a change, please use cl-fmt.sh to ensure your code
adheres to the formatting conventions for this project. You can also use the
setup-env.sh script to install a pre-commit hook which will automatically
run clang-format against all modified files.
Prior to pushing a change, please ensure you run the unit tests to avoid any
regressions. These are found in /test and can be run using
ctest.
License
Gittyup and its predecessor GitAhead are licensed under the MIT license. See LICENSE.md for details.