Eu gostaria de saber as diferenças entre fazer um fork de um projeto e fazê- clone
lo.
Só posso enviar solicitações pull via GitHub se bifurcar um projeto?
Eu gostaria de saber as diferenças entre fazer um fork de um projeto e fazê- clone
lo.
Só posso enviar solicitações pull via GitHub se bifurcar um projeto?
Respostas:
Basicamente sim. A fork
é apenas uma solicitação para o GitHub clonar o projeto e registrá-lo com seu nome de usuário ; O GitHub também monitora o relacionamento entre os dois repositórios, para que você possa visualizar os commits e pull entre os dois projetos (e outros garfos).
Você ainda pode solicitar que as pessoas retirem seu repositório clonado, mesmo que você não o utilize fork
- mas você teria que lidar com disponibilizá-lo publicamente. Ou envie os patches dos desenvolvedores (consulte git format-patch
) que eles podem aplicar às suas árvores.
git pull
. Um garfo recebe vários comandos. E não é de surpreender, quase todos os garfos que olho estão desatualizados. Forks são como o problema do repositório Maven em esteróides. Em vez de um repositório desatualizado (Maven), existem milhares deles (Git).
git pull
editada para que ainda exista algum tipo de relacionamento. Se você clonou a cópia inteira, está sentado em sua própria máquina local e desconectado do repositório original.
Quando você diz que está bifurcando um repositório, está basicamente criando uma cópia do repositório com seu ID do GitHub. O ponto principal a ser observado aqui é que quaisquer alterações feitas no repositório original serão refletidas de volta nos repositórios bifurcados (é necessário buscar e refazer o processo). No entanto, se você fizer alterações no seu repositório bifurcado, será necessário criar explicitamente uma solicitação de recebimento no repositório original . Se sua solicitação de recebimento for aprovada pelo administrador do repositório original , suas alterações serão confirmadas / mescladas com a base de código original existente . Até lá, suas alterações serão refletidas apenas na cópia que você bifurcou .
Em resumo:
O Modelo Fork & Pull permite que qualquer pessoa bifurque um repositório existente e faça alterações em seu fork pessoal sem exigir que o acesso seja concedido ao repositório de origem. As alterações devem ser puxadas para o repositório de origem pelo mantenedor do projeto.
Observe que, após a bifurcação, você pode clonar seu repositório (aquele abaixo do seu nome) localmente na sua máquina. Faça alterações e envie-o para o seu repositório bifurcado. No entanto, para refletir suas alterações no repositório original, sua solicitação de recebimento deve ser aprovada.
Algumas outras discussões interessantes -
Você pode confirmar em seu repo online (ou confirmar em seu repo local e, em seguida, enviar para o repo online) e enviar solicitação de recebimento.
O gerente de projeto pode aceitá-lo para obter suas alterações em sua principal versão online.
Um clone é onde você tem duplicação e separação adequadas entre duas versões (possivelmente diferentes) de um repositório. Quando um repo é alterado, o novo conteúdo deve ser copiado ativamente para o outro repo usando um comando push. E as mudanças no outro repositório foram buscadas.
Quando você divide um repositório, em um servidor, não há necessidade de duplicação de conteúdo, porque os dois repositórios usarão o mesmo conteúdo [objeto fixo] desse mesmo servidor. O 'truque' é gerenciar os diferentes pontos de vista do usuário, para que cada usuário acredite ter uma cópia pessoal completa do repositório. Empurra e busca entre garfos é simplesmente atualiza os ponteiros do usuário.
Em um nível inferior, o git faz a mesma coisa internamente. Se você tiver três arquivos diferentes, cada um contendo Hello World
, o git simplesmente 'bifurca' sua cópia única do blob Hello World e a oferece em cada um dos três locais, conforme necessário.
A capacidade de bifurcar no servidor significa que a grande permissão de armazenamento do Github não é tão grande, em média, pois cada corpo compartilha o único repositório subjacente.
Em poucas palavras, o Forking é talvez o mesmo que "clonar sob o seu ID / perfil do GitHub". Um fork é a qualquer momento melhor que um clone, com algumas exceções, obviamente. O repositório bifurcado está sempre sendo monitorado / comparado com o repositório original, diferentemente de um repositório clonado. Isso permite rastrear as alterações, iniciar solicitações pull e também sincronizar manualmente as alterações feitas no repositório original com o seu bifurcado.
Enquanto a resposta de @ AniketThakur é muito boa. Ninguém respondeu à seguinte pergunta ainda.
Só posso enviar solicitações pull via GitHub se bifurcar um projeto?
Não. Se você é um colaborador de um repositório, pode: Criar um clone local. Faça uma filial local. Adicionar confirmações a esse ramo. Envie a ramificação local de volta ao github (criando uma ramificação remota no processo). Faça uma solicitação de recebimento solicitando que essa ramificação seja mesclada na ramificação principal (ou na ramificação que você desejar).
Caso você tenha feito o que o questionador sugeriu (esqueceu de bifurcar e clonou localmente um repo, fez alterações e agora precisa emitir uma solicitação de recebimento), você pode voltar aos trilhos:
Outra diferença sutil estranha no GitHub é que as alterações nos garfos não são contadas no log de atividades até que as alterações sejam inseridas no repositório original. Além disso, para transformar um fork em um clone adequado, você deve entrar em contato com o suporte do Github, aparentemente.
De Por que minhas contribuições não estão aparecendo :
O commit foi feito em um fork
As confirmações feitas em uma bifurcação não contam para suas contribuições. Para fazê-los contar, você deve executar um dos seguintes procedimentos:
Abra uma solicitação de recebimento para que suas alterações sejam mescladas no repositório pai. Para desconectar o fork e transformá-lo em um repositório independente no GitHub, entre em contato com o Suporte do GitHub . Se o garfo possuir garfos próprios, informe o suporte se os garfos devem se mover com seu repositório para uma nova rede ou permanecer na rede atual. Para mais informações, consulte " Sobre garfos ".