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
-
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
-
Criar um novo repositório privado no github com o
mesmo nome do repositório a ser espelhado
. -
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
-
Remover o repostório clonado no passo 1.
cd .. rm -rf nome-do-repositorio.git
-
Agora você pode clonar o seu repositorio privado normalmente.
git clone [email protected]:<seu-usuario>/<nome-do-repositorio>.git
-
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
-
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"
-
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
-
Mude para a branch B.
git checkout B
-
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
-
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.