Se eu bifurcar um projeto hospedado no github. Eu bifurco todos os galhos? Como sei em qual ramo meu garfo se baseia? Em outras palavras, qual ramo será baixado no meu PC?
Se eu bifurcar um projeto hospedado no github. Eu bifurco todos os galhos? Como sei em qual ramo meu garfo se baseia? Em outras palavras, qual ramo será baixado no meu PC?
Respostas:
Todas as ramificações no GitHub serão copiadas em uma bifurcação. (Obviamente, isso não inclui ramificações que nunca foram enviadas para o GitHub.)
Mas um fork é uma operação do GitHub para o GitHub; nada é copiado para o seu PC. Não é exatamente o mesmo que um clone do Git . Se você deseja perguntar "o que é copiado quando clono um projeto?", Consulte o manual git-clone(1)
.
Pense desta maneira:
O repositório corresponde ao trabalho colaborativo da equipe em um ou mais ramos. Todos os colaboradores têm sua própria cópia.
Cada garfo do repositório principal corresponde ao trabalho de um colaborador. Um fork é realmente uma construção do Github (não do Git) para armazenar um clone do repositório em sua conta de usuário. Como um clone, ele conterá todas as ramificações no repositório principal no momento em que você fez o garfo.
Cada ramificação dentro do fork e / ou no repositório principal pode corresponder a vários tipos de coisas, dependendo de como você deseja trabalhar. Cada ramificação pode se referir a uma versão do projeto, mas também pode corresponder a diferentes canais de desenvolvimento, como hotfixes ou trabalho experimental.
A solicitação de recebimento (no ecossistema do GitHub) corresponde à tarefa. Sempre que desejo contribuir com uma tarefa finalizada isolada para o repositório principal, crio uma solicitação de recebimento correspondente às confirmações feitas nessa tarefa. Esses commits são retirados do meu fork ou meu branch para o repositório principal .
Uma confirmação é um conjunto de alterações no código. Essa é uma das coisas mais interessantes sobre o Git. Você não transfere arquivos, transfere logs de alterações.
Fork é um clone no lado do GitHub (clona tudo).
Quando você está clonando um repositório, está obtendo todo o histórico desse repositório, com todas as suas ramificações.
Embora, em teoria, você possa alterar a ramificação padrão de um repositório remoto , um clone de um repositório GitHub procura principalmente o ramo mestre. Significando alterar a ramificação "padrão" que um clone do GitHub obterá, é necessário renomear a ramificação principal.
Se você criar uma bifurcação de um projeto no site do Github, obterá todas as ramificações do projeto upstream.
Se você clonar do garfo recém-formado no computador local, o origin
controle remoto apontará para o ramo principal do garfo no Github.
upstream
ramificação é algo que você deve fazer; e eles dizem como fazer isso.
Isso pode ser explicado muito bem. Você tem um repositório central no GitHub. Sempre que você clica no seu computador pessoal para fazer algumas alterações, esse clone local do repositório principal é chamado de fork.
O ramo é algo diferente e está incluído no fork / repo. Na verdade, o ramo é o seu trabalho em diferentes estágios de desenvolvimento. Eles são criados como e quando necessário para salvar um conjunto de funcionalidades, fornecer acesso a diferentes usuários, demonstrar o site ao cliente etc.
Gostaria de compartilhar um exemplo da vida real de quando usamos Ramos e quando usamos Forks
Temos o GitLab em nossa loja e, às vezes, precisamos trabalhar nos pacotes de um projeto do Laravel. Normalmente, criamos uma ramificação e enviamos alterações para a ramificação que testamos em nosso ambiente de desenvolvimento de VM local ao trabalhar com o projeto Laravel real.
Digamos que nosso projeto esteja localizado em
https://github.com/yardpenalty/mainproject.git
Uso da filial:
Vamos dizer que o ramo é chamado It_doesnt_matter
Uma vez que tenhamos nossa ramificação da maneira que queremos para produção, faremos nosso push final para essa ramificação e criaremos uma solicitação de mesclagem que será enviada ao UAT para teste.
A mesclagem da It_doesnt_matter
ramificação agora é enviada para o projeto mestre
às https://github.com/yardpenalty/mainproject.git
Digamos que o projeto do pacote esteja localizado em
https://github.com/yardpenalty/mypackage.git
Lembre-se de que o projeto principal usa esse pacote na produção, portanto não podemos fazer alterações simplesmente empurrando-os para este pacote (entre outros motivos). Digamos que um desenvolvedor da Web precise editar este pacote para fazer alterações na produção.
Uma ramificação simples também não funciona porque não podemos ver nossas alterações sem publicar o pacote etc.
Uso do garfo: agora é quando precisamos fazer um pouco de truque com o nosso pacote, para criar um clone do pacote de produção por meio de um garfo. Os arquivos composer.json podem ser atualizados para apontar para a bifurcação que agora está localizada no caminho de Usuário ou Grupo
Então, vamos criar uma bifurcação https://github.com/yardpenalty/mypackage.git
e chame https://github.com/yardpenalty/yards/mypackage.git
Agora podemos atualizar nosso arquivo composer.json para apontar para este pacote em nossos "repositórios": [array como tal e vamos lá!
{
"type": "github",
"url": "https://github.com/yardpenalty/yard/mypackage.git"
}
]