Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alberthier/git-webui
A standalone local web based user interface for git repositories
https://github.com/alberthier/git-webui
Last synced: about 2 months ago
JSON representation
A standalone local web based user interface for git repositories
- Host: GitHub
- URL: https://github.com/alberthier/git-webui
- Owner: alberthier
- License: apache-2.0
- Created: 2014-09-19T19:52:16.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2022-12-15T17:17:55.000Z (almost 2 years ago)
- Last Synced: 2024-02-14T17:32:54.796Z (10 months ago)
- Language: JavaScript
- Homepage:
- Size: 1.27 MB
- Stars: 831
- Watchers: 43
- Forks: 119
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- starred-awesome - git-webui - A standalone local web based user interface for git repositories (JavaScript)
- awesome-starred - alberthier/git-webui - A standalone local web based user interface for git repositories (others)
README
# Git WebUI
This git extension is a standalone web based user interface for git repositories.
It comes with history and tree browsing. You may also use it to commit
as it comes with an UI to review local changes and the ability to stage / unstage code.Moreover as git-webui is a web server, your repository is accessible to
other people on the same network. They can clone or pull your code using the
same URL.It has very few dependencies, you probably already have them on your
Mac / Linux : git, python, and a web browser.## Installation
### Automatic (Do you trust me ?)
The following command will install git-webui in `$HOME/.git-webui` and add a
`webui` alias to your global `.gitconfig` file.*Note for Windows users:* These install scripts work for you too. Run them from your Git-Bash shell.
You need to install [Python](https://www.python.org/downloads/) first.Using curl (Mac OS X & Windows):
```
curl https://raw.githubusercontent.com/alberthier/git-webui/master/install/installer.sh | bash
```Using wget (Linux):
```
wget -O - https://raw.githubusercontent.com/alberthier/git-webui/master/install/installer.sh | bash
```Upon installation git-webui will update itself automatically every couple of weeks.
You can deactivate auto-update by removing the `autoupdate = true` line from the
`webui` section of your global `.gitconfig` file.### Manual
Simply clone the repository and install the alias
```
git clone https://github.com/alberthier/git-webui.git
git config --global alias.webui \!$PWD/git-webui/release/libexec/git-core/git-webui
```If you want to allow auto-update:
```
git config --global webui.autoupdate true
```## Usage
### Starting
First cd to any of your project versioned with git
```
cd
git webui
```This will start an embedded HTTP server and open your default browser with the GUI.
### History Viewing
The toolbar on the left shows your branches and tags. The log of the currently selected one is displayed.
When selecting a revision the diff of this specific commit is displayed in the right panel.
![Image of log commit](https://raw.githubusercontent.com/alberthier/git-webui/master/src/share/git-webui/webui/img/doc/log-commit.png)
On top of the right panel, you can choose 'Tree' to display the versioned content at the specific
revision selected in the left panel. You can browse through directories and display file contents.![Image of log tree](https://raw.githubusercontent.com/alberthier/git-webui/master/src/share/git-webui/webui/img/doc/log-tree.png)
### Remote access
Other people on your network have read-only access to your repository:
they may access to the web interface (without 'Workspace'), clone or pull from your repository.
All this through the same url:Clone:
```
$ git clone http://:8000/ repo_name
```Pull:
```
$ git pull http://:8000/
```### Commit
Commits can only be made from localhost.
![Image of the workspace](https://raw.githubusercontent.com/alberthier/git-webui/master/src/share/git-webui/webui/img/doc/workspace.png)
- **Working copy** lists the modified files (compared to the staging area) in your working directory
- **Message** lets you enter a commit message
- **Staging area** lists the modified files (compared to HEAD) in your staging area. These are the changes that will be committedThe diff view lets you review the differences of the selected file.
You can select code in more fine grained way:
- If the displayed diff is from the working copy, you may stage or cancel the selected lines.
- If the displayed diff is from the staging area, you may unstage the selected lines.## Dependencies
### Runtime
- git (of course :) )
- python 2.7+ or python 3.0+ (Generally already installed on your Mac / Linux)
- An up-to-date modern browser### Development
- Runtime dependencies and ...
- node.js
- grunt-cli## Uninstallation
### Automatic
Using curl (Mac OS X & Windows):
```
curl https://raw.githubusercontent.com/alberthier/git-webui/master/install/uninstaller.sh | bash
```Using wget (Linux):
```
wget -O - https://raw.githubusercontent.com/alberthier/git-webui/master/install/uninstaller.sh | bash
```### Manual
```
rm -rf
git config --global --unset-all alias.webui
git config --global --remove-section webui
```## Contributing
You can clone the source code of [git-webui on GitHub](https://github.com/alberthier/git-webui)
After executing `grunt` git-webui is available in the `dist` folder.
Please don't commit any content to the `release` folder. This is for end-users release versions, not for work-in-progress versions
## Packaging
If you want to build a DEB, RPM or Homebrew package for git-webui, you only need the content of the `release` folder.
Installing git-webui globally on the system is nothing else than
```
cp -rf release/* /usr
```## Limitations
- If you have no web browser installed at all (headless server), you should start git webui with the `--no-browser` option. Otherwise git-webui may freeze searching for a browser.
## Author
[Éric ALBER](mailto:[email protected]) ([@eric_alber](https://twitter.com/eric_alber))
## License
This software is licensed under the [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) license