git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: How to maintain private/secret/confidential branch.

From
Sitaram Chamarty <sitaramc@gmail.com>
Date
Dec 14, 2008, 16:13 UTC
Message-ID
<gi3bap$asc$1@ger.gmane.org>
In-Reply-To
<c55009e70812140738l8b51adax77cc6e507971554e@mail.gmail.com>
On 2008-12-14, Łukasz Lew <lukasz.lew@gmail.com> wrote:
Show 8 quoted lines
> On Sun, Dec 14, 2008 at 15:55, Nick Andrew <nick@nick-andrew.net> wrote:
>> 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?

This is going to sound weird to some seasoned folks, and I'm hoping to hear better ways of doing this. But having done stuff like this, I once wrote it up and here're my notes:

To split just the top commit into multiple commits:
    * start git gui
    * choose "amend last commit" from the commit menu
    * unstage all files (meaning you click on the little
      icons so they move from the left-bottom panel to the
      left-top panel)
    * pick files or hunks in files to stage and commit the
      usual way
    * continue all changes are committed
To split a commit that is *not* the top one:
    * start an interactive rebase that includes that commit
    * mark that commit as "edit" and start the rebase
    * when the rebase pauses, use git gui as described above
To combine a set of commits and split the result in some
other way (meaning you have commits A B P Q C D R E S and you
want to make them A B C D X Y Z where X+Y+Z = P+Q+R+S!)
    * start an interactive rebase
    * move lines as appropriate (in the editor) so the
      commits P,Q,R,S are together
    * choose "squash" on the second and subsequent ones and
      start the rebase
    * (dirty trick warning) when the editor for the combined
      commit message pops up, delete ALL the lines and save
    * use git gui as above
    * then continue the rebase
Hope this helps...
Previous: Daniel Barkalow
Message 11 of 11 in “How to maintain private/secret/confidential branch.”
  1. Łukasz LewDec 14, 2008
  2. Nick AndrewDec 14, 2008
  3. Łukasz LewDec 14, 2008
  4. Alexander PotashevDec 14, 2008
  5. Łukasz LewDec 14, 2008
  6. Daniel BarkalowDec 15, 2008
  7. Łukasz LewDec 17, 2008
  8. Daniel BarkalowDec 17, 2008
  9. Łukasz LewDec 17, 2008
  10. Daniel BarkalowDec 18, 2008
  11. Sitaram ChamartyDec 14, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.