git - origem de adição remota vs origem remota de conjunto de URL


413

Eu crio um novo repositório:

git init
echo "# MESSAGE" >> README.md
git add README.md
git commit -m "first commit"

Então, quero enviar meu commit ao repositório remoto vazio criado no github, para que eu tenha que configurar o remote.

Qual é a diferença entre usar os seguintes comandos? :

git remote add origin git@github.com:User/UserRepo.git
git remote set-url origin git@github.com:User/UserRepo.git

No final, eu faço push:

git push -u origin master

Edit1:

O que acontece quando eu chamo a origem do conjunto de URLs remotas logo após o git init? A origem remota do conjunto de URLs cria origem? Se a origem já existe após o git init, não há diferença entre usar esses comandos no meu cenário, certo?

Respostas:


509

abaixo é usado para adicionar um novo controle remoto:

git remote add origin git@github.com:User/UserRepo.git

abaixo é usado para alterar a URL de um repositório remoto existente:

git remote set-url origin git@github.com:User/UserRepo.git

abaixo, você enviará seu código para a ramificação principal do repositório remoto definida com origine -upermitirá que você aponte sua ramificação local atual para a ramificação principal remota:

git push -u origin master

Documentação


se eu clonar de A para o meu local e usar "git remote set-url B". ele excluirá o repositório em A? Eu estou tentando clonar um repositório de código AWS comprometer com gitlab
Josh

normalmente, quando estou criando um novo repositório, cometo um erro e defino a origem para o upstream. Acabar precisando para corrigi-lo usando o 2º comandogit remote set-url origin git@github.com:User/UserRepo.git
Mel

-u deixe que você aponte sua filial local atual para a filial mestre remota. Não entendo por que gostaria de fazer isso. Quero dizer, digamos que eu retirei do master, criei um novo featureBranch ... confirmei minhas alterações e depois enviei as alterações para origin / featureBranch e, em seguida, mesclei / puxei esse recurso no meu master. <- neste momento não terminei meu featureBranch? Por que eu precisaria apontar para ramificação mestre remota? Não devo fazer o check-out para o local / mestre e retirar da origem mais recente?
Mel

A resposta é muito boa, exceto a explicação da -uflag, que é, na minha opinião, enganosa. Para explicação da -ubandeira, eu recomendaria para ter um olhar para esta discussão stackoverflow.com/questions/18867824/...
Hoang tran

e -u permite que você aponte sua ramificação local atual para a ramificação mestre remota: Eu não entendo esta linha ... O que você quis dizer com apontar?
Chovendo

62
  • Quando você corre git remote add origin git@github.com:User/UserRepo.git , um novo controle remoto é criado com o nome origin.
  • Quando você executa git remote set-url origin git@github.com:User/UserRepo.git, o git procura pelo nome do controle remoto existente origine altera seu URL do repositório remoto. Se o git não conseguir encontrar nenhum controle remoto com nome origin, isso gera um erro fatal: No such remote 'origin'.

Se você deseja criar um novo repositório, use git remote add origin git@github.com:User/UserRepo.gitpara adicionar remote.


Por favor, veja Edit1
Irbis

git initnão adiciona nenhuma origem. Somente o repositório git será inicializado. Se você clonar qualquer repositório existente, ele terá uma origem remota. Recomendação é o uso git add, depois git initnão set-url.
Ram

@ Ram É óbvio não chamar set-url após o git init, pois não faz sentido. set-url é mudar e adicionar é adicionar novo controle remoto.
Santosh

61

Abaixo, reinicializará seu repo local; também limpando repositórios remotos (ou seja, origem):

git init

Em seguida, abaixo, criará 'origem' se não existir:

git remote add origin [repo-url]

Senão, você pode usar o set-urlsubcomando para editar um controle remoto existente:

git remote set-url origin [repo-url]

Além disso, você pode verificar os controles remotos existentes com

git remote -v

Espero que isto ajude!


1
git remote set-url origin ...em um repo recém-iniciado, a mensagem foi fatal: não existe uma 'origem' remota. git remote add origin ...trabalhou.
precisa saber é o seguinte

@RobbVandaveer Obrigado pela captura! Eu atualizei a resposta para o uso correto do subcomandoset-url
vpibano

32

git remote add=> ADICIONA um novo controle remoto.

git remote set-url=> ATUALIZA o controle remoto existente.


  1. O nome remoto que vem depois addé um novo nome remoto que não existia antes desse comando.
  2. O nome remoto que vem depois set-urljá deve existir como um nome remoto para o seu repositório.

git remote add myupstream someurl => nome remoto myupstream não existia agora, criando-o com este comando.

git remote set-url upstream someurl => nome remoto upstream já existe, estou apenas mudando sua url.


git remote add myupstream https://github.com/nodejs/node => **ADD** If you don't already have upstream
git remote set-url upstream https://github.com/nodejs/node # => **UPDATE** url for upstream

30

Para adicionar um novo controle remoto, use o git remote addcomando no terminal, no diretório em que seu repositório está armazenado.

O git remote set-urlcomando altera uma URL de repositório remoto existente.

Então, basicamente, remote addé adicionar um novo, remote set-urlé atualizar um existente


28

1. git remote add origin git@github.com:User/UserRepo.git

  • Este comando é a segunda etapa da série de comandos após a inicialização do git no seu repositório de trabalho atual usando git init.
  • Este comando significa simplesmente "você está adicionando a localização do seu repositório remoto onde deseja enviar / extrair seus arquivos de / para !! .."
  • Seu repositório remoto pode estar em qualquer lugar no github, gitlab, bitbucket etc.
  • Aqui originestá um nome alternativo / alternativo para o seu repositório remoto, para que você não precise digitar o caminho inteiro para o controle remoto todas as vezes e, a partir de agora, você está declarando que usará esse nome (origem) para se referir ao seu controle remoto. Este nome pode ser qualquer coisa.
  • Para verificar se o controle remoto está configurado corretamente, digite: git remote -v

    OU git remote get-url origin

2. git remote set-url origin git@github.com:User/UserRepo.git

Este comando significa que, se você acidentalmente empurrar para um repositório errado na primeira vez, poderá "redefinir o caminho do repositório remoto" usando o comando acima.

3. git push -u remote master

Este comando simplesmente envia seus arquivos para o repositório remoto. O Git tem um conceito conhecido como "ramificação" ; portanto, por padrão, tudo é enviado para a ramificação mestre , a menos que seja especificada explicitamente uma ramificação alternativa.

Para saber sobre a lista de todas as ramificações que você tem no seu tipo de repositório:git branch


10

Tente o seguinte:

git init  
git remote add origin your_repo.git  
git remote -v  
git status  

7

Você não pode chamar remote set-url originlogo depoisgit init , porque o git remote set-urlcomando não cria a origem, mas altera uma URL de repositório remoto existente .

portanto, o comando git remote set-urlsó funcionará se você clonou o repositório ou adicionou manualmente um remoto chamado origem.

você pode verificar remotamente com o comando, git remote -vele mostrará o URL remoto após o nome ou, se este comando der erro como fatal: Not a git repository (or any of the parent directories): .gito repositório não existe, você precisará adicionar a origem com o comandogit remote add

1 git remote add

Este comando é usado para adicionar um novo controle remoto, você pode usar este comando no terminal, no diretório do seu repositório.

O comando git remote add usa dois argumentos:

  1. Um nome remoto , por exemplo, origem
  2. Um URL remoto , por exemplo, https://github.com/user/repo.git

Por exemplo:

git remote add origin https://github.com/user/repo.git

2)git remote set-url

O comando git remote set-url altera uma URL de repositório remoto existente.

O comando git remote set-url usa dois argumentos:

  1. Um nome remoto existente . Por exemplo, originou upstreamsão duas opções comuns.
  2. Um novo URL para o controle remoto

Por exemplo, você pode alterar o URL do seu controle remoto de SSH para HTTPS com o git remote set-urlcomando

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

você pode verificar se o URL remoto mudou, com o comando git remote -v.

nota: "origem" é uma convenção que não faz parte do comando. "origem" é o nome local do repositório remoto. você pode usar qualquer nome em vez de "origem".

Por exemplo:

git remote add myorigin git@github.com:user/repo.git
git remote set-url myorigin https://github.com/user/repo.git

Referências do github: remote add , remote set-url


0

Se você possui um projeto existente e deseja adicionar o URL do repositório remoto, execute o seguinte comando

git init

Se você deseja adicionar o arquivo readme.md, pode criá-lo e adicioná-lo usando o comando abaixo.

git add README.md

faça seu primeiro commit usando o comando abaixo

git commit -m "first commit"

Agora você concluiu todo o processo do repositório local, agora como adicionar o URL do repositório remoto? verifique abaixo o comando este é para ssh url, você pode alterá-lo para https.

git remote add origin git@github.com:user-name/repository-name.git

Como você envia seu primeiro commit, veja o comando abaixo :

git push -u origin master
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.