Git Ghost is a command line tool for synchronizing your working directory efficiently to a remote place without commiting changes.
Git Ghost creates 2 types of branches to synchronize your working directory.
This type of branch contains commits between 2 commits which can exist only in your working directory.
This type of branch contains modifications from a specific commit in your working directory.
Install the binary from source: execute,
$ git clone https://github.com/pfnet-research/git-ghost
$ cd git-ghost
$ make install
The binaries of each versions are available in Releases.
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
.
You can synchoronize local modifications.
$ cd <DIR_L>
$ git-ghost push
<HASH>
$ git-ghost show <HASH>
...
$ cd <DIR_R>
$ git-ghost pull <HASH>
You can synchronize local commits and modifications.
Assume DIR_R
's HEAD is HASH_R.
$ cd <DIR_L>
$ git-ghost push all <HASH_R>
<HASH_1> <HASH_2>
<HASH_3>
$ git-ghost show all <HASH_2> <HASH_3>
...
$ cd <DIR_R>
$ git-ghost pull all <HASH_2> <HASH_3>
# checkout this repo to $GOPATH/src/git-ghost
$ cd $GOPATH/src
$ git clone git@github.com: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
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Copyright (c) 2019 Preferred Networks. See LICENSE for details.