Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pfnet-research/git-ghost
Synchronize your working directory efficiently to a remote place without committing the changes.
https://github.com/pfnet-research/git-ghost
docker git kubernetes reproducibility
Last synced: 2 months ago
JSON representation
Synchronize your working directory efficiently to a remote place without committing the changes.
- Host: GitHub
- URL: https://github.com/pfnet-research/git-ghost
- Owner: pfnet-research
- License: apache-2.0
- Created: 2019-04-10T01:38:28.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-11-07T02:04:43.000Z (about 2 years ago)
- Last Synced: 2024-06-18T23:17:23.140Z (7 months ago)
- Topics: docker, git, kubernetes, reproducibility
- Language: Go
- Size: 453 KB
- Stars: 73
- Watchers: 16
- Forks: 9
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# git-ghost
[![GoDoc][godoc-image]][godoc-link]
[![Build Status][build-image]][build-link]
[![Coverage Status][cov-image]][cov-link]Git Ghost is a command line tool for synchronizing your working directory efficiently to a remote place without commiting changes.
## Concept
Git Ghost creates 2 types of branches to synchronize your working directory.
### Commits Branch
This type of branch contains commits between 2 commits which can exist only in your working directory.
### Diff Branch
This type of branch contains modifications from a specific commit in your working directory.
## Installing
### From Source
Install the binary from source: execute,
```bash
$ git clone https://github.com/pfnet-research/git-ghost
$ cd git-ghost
$ make install
```Compiled binary is located in `dist` folder.
### Releases
The binaries of each releases are available in [Releases](../../releases).
## Getting Started
First, create an empty repository which can be accessible from a remote place. Set the URL as `GIT_GHOST_REPO` env.
Assume your have a local working directory `DIR_L` and a remote directory to be synchronized `DIR_R`.
## Case 1 (`DIR_L` HEAD == `DIR_R` HEAD)
You can synchoronize local modifications.
```bash
$ cd
$ git-ghost push$ git-ghost show
...
$ cd
$ git-ghost pull
```## Case 2 (`DIR_L` HEAD \> `DIR_R` HEAD)
You can synchronize local commits and modifications.
Assume `DIR_R`'s HEAD is HASH\_R.
```bash
$ cd
$ git-ghost push all
$ git-ghost show all
...
$ cd
$ git-ghost pull all
```## Development
```
# checkout this repo to $GOPATH/src/git-ghost
$ cd $GOPATH/src
$ git clone [email protected]:pfnet-research/git-ghost.git
$ cd git-ghost# build
$ make build# see godoc
$ go get golang.org/x/tools/cmd/godoc
$ godoc -http=:6060 # access http://localhost:6060 in browser
```## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new [Pull Request](../../pull/new/master)## Release
Release flow is fully automated. All the maintainer need to do is just to approve and merge [the next release PR](https://github.com/pfnet-research/git-ghost/pulls?q=is%3Apr+is%3Aopen+label%3Atagpr+)
## Copyright
Copyright (c) 2019 Preferred Networks. See [LICENSE](LICENSE) for details.
[build-image]: https://github.com/pfnet-research/git-ghost/actions/workflows/ci.yml/badge.svg
[build-link]: https://github.com/pfnet-research/git-ghost/actions/workflows/ci.yml
[cov-image]: https://coveralls.io/repos/github/pfnet-research/git-ghost/badge.svg?branch=master
[cov-link]: https://coveralls.io/github/pfnet-research/git-ghost?branch=master
[godoc-image]: https://godoc.org/github.com/pfnet-research/git-ghost?status.svg
[godoc-link]: https://godoc.org/github.com/pfnet-research/git-ghost