Fork privado

A regra do github é que você não pode fazer um fork privado de um repositório público, então o que vamos fazer é criar um espelho de um repositório público dentro de um repositório privado, aqui tem a documentação oficial para isso.

Passo a passo

  1. Vamos criar um clone do repositório a ser espelhado passando a flag --bare (No final do processo este repositório será removido da sua máquina)

    git clone --bare [email protected]:<usuario-do-repositorio>/<nome-do-repositorio>.git
  2. Criar um novo repositório privado no github com o mesmo nome do repositório a ser espelhado.

  3. Realizar o push do repositório espelhado para o repositório privado criado no passo anterior.

    cd nome-do-repositorio.git
    git push --mirror [email protected]:<seu-usuario>/<nome-do-repositorio>.git
  4. Remover o repostório clonado no passo 1.

    cd ..
    rm -rf nome-do-repositorio.git
  5. Agora você pode clonar o seu repositorio privado normalmente.

    git clone [email protected]:<seu-usuario>/<nome-do-repositorio>.git
  6. Caso queira manter o seu repositório sincronizado com o repositório original, você pode adicionar o repositório original como um remote. Certifique-se também de desabilitar o push para o repositório original.

    git remote add upstream [email protected]:<usuario-do-repositorio>/<nome-do-repositorio>.git
    git remote set-url --push upstream DISABLE

    Para ver a lista de repositorios remotos, execute o comando git remote -v. O resultado deve ser algo como:

    origin	[email protected]:<seu-usuario>/<nome-do-repositorio>.git (fetch)
    origin	[email protected]:<seu-usuario>/<nome-do-repositorio>.git (push)
    upstream	[email protected]:<usuario-do-repositorio>/<nome-do-repositorio>.git (fetch)
    upstream	DISABLE (push)

    Quando você quiser puxar as mudanças do upstream você pode apenas dar um fetch no remoto e dar um rebase em cima do seu trabalho.

      git fetch upstream
      git rebase upstream/master

    E resolver os conflitos se houverem.

É isso ai, agora você tem um fork privado do repositório original.

Por hoje é só pessoal, até a próxima.

Créditos

https://gist.github.com/0xjac/85097472043b697ab57ba1b1c7530274