Re: How to maintain private/secret/confidential branch.
- From
- Alexander Potashev <aspotashev@gmail.com>
- Date
- Dec 14, 2008, 16:06 UTC
- Message-ID
- <20081214160645.GA21358@myhost>
- In-Reply-To
- <c55009e70812140738l8b51adax77cc6e507971554e@mail.gmail.com>
Hello, Łukasz!
On 16:38 Sun 14 Dec , Łukasz Lew wrote:
Show 29 quoted lines
> Thanks Nick, thats really helpful (and surprisingly simple). > I have a couple more questions: > > On Sun, Dec 14, 2008 at 15:55, Nick Andrew <nick@nick-andrew.net> wrote: > > On Sun, Dec 14, 2008 at 02:49:50PM +0100, Łukasz Lew wrote: > >> I don't know how to make such a scenario work: > >> - two repositories: pub, priv > >> - priv is clone/branch of pub > >> - there is some constant developement both in pub and priv > >> - there are regular syncs with pub in priv > >> > >> Problem: > >> Occasionally I want to push some changes from priv to pub. > >> Then after syncing with pub I want to get as few conflicts as possible. > >> > >> Is it possible to do with git? > > > > Git can do almost anything. One should instead ask "How to do this > > with git?" :-) > > So I've heard, but not yet experienced it myself. I'm thrilled to try. > > > > > If I understand your problem, you could solve it with git cherry-pick > > and rebase. On priv, make a for-public branch from a pub branch. Then > > cherry-pick the commits you want from your private branch into the > > for-public branch. > > That almost works. Can I somehow split existing commits just like in git-add -p?
It's, however, better to make more commits to not experience the need of commit splitting.
But you can use '--no-commit' option of 'git cherry-pick' and 'git merge' (and 'git pull' as well as 'git merge'). For example:
git cherry-pick --no-commit <sha1> # cherry-pick without commiting git reset -- # unstage all changes git add -p # patch update
You can also use 'git add -i' (interative mode) instead of 'git add -p'.
Show 16 quoted lines
> > > Push your for-public branch to pub, > > then rebase your private branch. > > Rebase to the tip of master? Is it needed? Ie. cherry-pick does not > remove the patch from > the master in priv. > > If I now pull from pub, I will get the same change and it mereges nicely :D > > Can I get away without creating for_pub branch? maybe cherry pick in > pub from priv somehow? > > > > > Nick. > >
Alexander