Github

Subsections of Github

Úteis

Lorem Ipsum.

Subsections of Úteis

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

Patch Branch

Imagine o seguinte cenário: Você esta desenvolvendo em um repositório que possui duas branches principais, “A” e “B”. Você está trabalhando na branch “B” e precisa fazer um hotfix na branch “A”, mas precisa que esse hotfix seja refletido também na branch “B”.

Vamos ver no passo a passo como fazer isso.

Passo a passo

  1. Certifique-se de estar na branch A. Realize as alterações necessárias e faça um commit normalmente.

    git add .
    git commit -m "hotfix xpto"
  2. Crie um patch da correção: Use o comando `git format-patch para criar um arquivo de patch que contenha as alterações que você fez na branch A:

    git format-patch HEAD~1

    Isso criará um arquivo de patch com as alterações na branch atual. O HEAD~1 representa o último commit na branch A. Copie o nome que foi gerado para esse path: Será algo parecido com isso 0001-hotfix xpto.patch

  3. Mude para a branch B.

    git checkout B
  4. Aplique o patch na branch B: Use o comando git apply para aplicar o patch que você criou da branch A na branch B:

    git apply 0001-hotfix xpto.patch
  5. Agora basta fazer um commit normalmente na branch B.

    git add .
    git commit -m "hotfix xpto"

É isso ai, simples sim. Agora as alterações que você fez na branch A estão na branch B.

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