Quando eu corro:
git push origin branchname
O que exatamente é origine por que tenho que digitá-lo antes do nome do ramo?
Quando eu corro:
git push origin branchname
O que exatamente é origine por que tenho que digitá-lo antes do nome do ramo?
Respostas:
originé um alias no seu sistema para um repositório remoto específico. Na verdade, não é uma propriedade desse repositório.
Fazendo
git push origin branchname
você está dizendo para enviar para o originrepositório. Não há necessidade de nomear o repositório remoto origin: na verdade, o mesmo repositório pode ter um alias diferente para outro desenvolvedor.
Os controles remotos são simplesmente um alias que armazena a URL dos repositórios. Você pode ver qual URL pertence a cada controle remoto usando
git remote -v
No pushcomando, você pode usar controles remotos ou simplesmente usar um URL diretamente. Um exemplo que usa a URL:
git push git@github.com:git/git.git master
git pushvocê pode ver que ele primeiro verifica a configuração desse repositório (com a qual você pode verificar git config --list) uma chave chamada branch.<branchname>.remote. Se isso não for definido, "o padrão é de origem" - git-scm.com/docs/git-push
originnão é o nome do repositório remoto. É um alias local definido como uma chave no lugar da URL do repositório remoto.
Isso evita que o usuário digite toda a URL remota ao solicitar um push.
Esse nome é definido por padrão e por convenção do Git ao clonar de um controle remoto pela primeira vez.
Esse nome alternativo não é codificado e pode ser alterado usando o seguinte prompt de comando:
git remote rename origin mynewalias
Veja http://git-scm.com/docs/git-remote para mais esclarecimentos.
O Git tem o conceito de "controles remotos", que são simplesmente URLs para outras cópias do seu repositório. Quando você clona outro repositório, o Git cria automaticamente um controle remoto chamado "origem" e aponta para ele.
Você pode ver mais informações sobre o controle remoto digitando git remote show origin.
git remote show origin, por que não simplesmente git show origin? Deve haver uma razão, o que é isso? Obrigado.
originé o alias padrão para a URL do seu repositório remoto.
Simples! "origem" é exatamente o que você apelidou de seu repositório remoto quando você executou um comando como este:
git remote add origin git@github.com:USERNAME/REPOSITORY-NAME.git
A partir de então, o Git sabe que "origem" aponta para esse repositório específico (neste caso, um repositório GitHub). Você poderia chamá-lo de "github" ou "repo" ou o que quisesse.
Também fiquei confuso com isso, e abaixo está o que aprendi.
Quando você clona um repositório, por exemplo, no GitHub:
originé o alias da URL da qual você clonou o repositório. Observe que você pode alterar esse alias.
Há uma masterramificação no repositório remoto (alias de origin). Há também outro masterramo criado localmente.
Informações adicionais podem ser encontradas nesta pergunta do SO: Ramificação do Git: mestre vs. origem / mestre vs. controles remotos / origem / mestre
Quando você clona um repositório git clone, ele cria automaticamente uma conexão remota chamada originapontando para o repositório clonado. Isso é útil para desenvolvedores que criam uma cópia local de um repositório central, pois fornece uma maneira fácil de obter alterações upstream ou publicar confirmações locais. Esse comportamento também é o motivo pelo qual a maioria dos projetos baseados em Git chama sua origem de repositório central.
A melhor resposta aqui:
https://www.git-tower.com/learn/git/glossary/origin
No Git, "origem" é um nome abreviado para o repositório remoto do qual um projeto foi originalmente clonado. Mais precisamente, ele é usado no lugar da URL do repositório original - e, portanto, facilita muito a referência.
Em https://www.git-tower.com/learn/git/glossary/origin :
No Git, "origem" é um nome abreviado para o repositório remoto do qual um projeto foi originalmente clonado. Mais precisamente, ele é usado no lugar da URL do repositório original - e, portanto, facilita muito a referência.
Observe que a origem não é de forma alguma um nome "mágico", mas apenas uma convenção padrão. Embora faça sentido deixar essa convenção intocada, você pode renomeá-la perfeitamente sem perder nenhuma funcionalidade.
No exemplo a seguir, o parâmetro da URL para o comando "clone" se torna a "origem" do repositório local clonado:
git clone https://github.com/gittower/git-crash-course.git
As outras respostas dizem que originé um alias para o URL de um repositório remoto que não é totalmente exato. Note-se que um endereço que começa com httpé um URL, enquanto um que começa com git@é um URI ou um Universal Resource Identifier.
Todos os URLs são URIs, mas nem todos os URIs são URLs.
Em resumo, quando você digita, git remote add origin <URI>está dizendo ao git local que, sempre que usar a palavra, originvocê realmente quer dizer o URI que você especificou. Pense nisso como uma variável que possui um valor.
E, assim como uma variável, você pode nomeá-lo o que quiser (por exemplo. github, heroku, destination, Etc).