A modern, user-friendly graphical interface for Git operations, built with Python. This tool simplifies Git operations through an intuitive graphical interface, making version control more accessible to users of all experience levels.
-
Simple Repository Management
- Open existing repositories
- Create new repositories
- Clone remote repositories
- Quick repository switching
-
Intuitive Interface
- Clear visibility of staged and unstaged changes
- File-specific diff view
- Command output log
- Branch management
- History view
-
Core Git Operations
- Stage/unstage files
- Commit changes with messages
- Push to remote with automatic upstream tracking
- Pull from remote
- View file differences
- Create/Delete/Switch branches
- View your git history (text and graph)
- Branch management with remote synchronization
The latest stable release can be downloaded from the releases page. Each release includes:
- Windows executable (.exe)
- Release notes detailing changes and improvements
Alternativly you can build your own release using pyinstaller:
pyinstaller __main__.py --icon=GUI-Git-Logo.ico --onefile --name=Git-GUI --add-data "GUI-Git-Logo.png;."
- Choose one of the following options:
- Open an existing Git repository
- Create a new Git repository
- Clone a remote repository
- Once a repository is opened, you can:
- View staged and unstaged changes
- Stage/unstage files using the arrow buttons
- View file differences in the diff panel
- Commit changes with a message
- Push/pull changes to/from remote
- Create/Delete/Switch branches
- Get log data
- Python 3.x
- GitPython
- tkinter
Git configuration can be accessed through the settings menu (⚙):
- Set Git username
- Set Git email
Branch operations can be accessed through the branch menu (⎇):
- Create new branches
- Delete branches (local and remote)
- Switch between branches
- View current active branch
- Automatic upstream tracking for new branches
- Remote branch synchronization
Text-based log showing:
- Commit hashes
- Author information
- Commit messages
- Timestamps
Viewing the history as a graph:
- Open the branch window
- Click on "View Graph"
- Enjoy a visual representation of your repo history
- Check the issues page for known problems and solutions
- Submit bug reports or feature requests through GitHub issues
Want to contribute? Here's the project structure:
Git-Gui/
├── __main__.py # Application entry point
├── git_interface/ # Git operations
│ ├── __init__.py
│ └── git_commands.py # Git command implementations
├── GUI/ # User interface
│ ├── __init__.py
│ ├── gui_window.py # Main repository window
│ ├── startup_window.py # Initial selection window
│ ├── branch_window.py # Branch management window
│ ├── graph_window.py # History visualization (the graph)
│ └── theme.py # Styles
├── Assets/ # Pictures used for README
└── requirements.txt # Project dependencies
- Fork the repository
- Create a feature branch ("git checkout -b feature/amazing-feature")
- Commit your changes ("git commit -m 'Add some amazing feature'")
- Push to the branch ("git push origin feature/amazing-feature")
- Open a Pull Request
- Built with GitPython
- UI powered by Python's tkinter