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
Compiled binary is located in dist
folder.
The binaries of each releases 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
Release flow is fully automated. All the maintainer need to do is just to approve and merge the next release PR
Copyright (c) 2019 Preferred Networks. See LICENSE for details.