Não consigo mais clonar nenhum repositório.
$ git clone [email protected]:myaccount/myrep.git
Cloning into 'myrep'...
conq: repository does not exist.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
O problema é que minha chave ssh id_rsa
ainda é a mesma. Eu recriá-lo de qualquer maneira, atualizei-o nas chaves ssh da minha conta BitBucket
, e o mesmo erro aparece quando tento clonar meu repositório. Eu tentei o mesmo procedimento em outra máquina (redhat) e o git clone funcionou. Então, há algo acontecendo com git
.
Então eu fui em outro projeto de versão do git:
$ cd share-repo
$ ls -a
./ ../ .git/ .gitignore* f1* f2*
Eu imprimo o arquivo git config
:
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = [email protected]:myaccount/share-repo.git
[branch "master"]
[user]
name = myaccount
Eu tento um pull
:
$ git pull -v
conq: repository does not exist.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Ok, vamos tentar um empurrão?
$ git push -v origin master
Pushing to [email protected]:myaccount/p2.git
conq: repository does not exist.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Huh? Git
tenta empurrar para o repositório p2? Deve tentar empurrar para share-repo
... Como diabos ele está tentando empurrar para um repositório cujo nome é p2? De fato, eu tive um repo chamado p2
esta manhã, mas eu deletei da minha conta BitBucket
enquanto fazia alguns testes, então eu removi a pasta relacionada p2
do meu computador. Como git
reteve informações sobre p2
? E acima de tudo, onde é armazenado, como posso redefini-lo?
$ git remote -v
origin [email protected]:myaccount/p2.git (fetch) # ?!
origin [email protected]:myaccount/p2.git (push) # ?!
origin [email protected]:myaccount/share-repo.git (push)
Estranho, como vimos anteriormente, o arquivo git config
contém apenas informações sobre o repo share-repo
. Também tentei localizar a string p2 na pasta inteira:
$ grep -Rin p2 ../share-repo/
# Nothing
Eu criei um repositório manualmente chamado p2
in Bitbucket
. Eu tentei clonar:
$ cd ..
$ git clone [email protected]:myaccount/p2.git
Cloning into 'p2'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
$ cd p2
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = [email protected]:myaccount/p2.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
$ git remote -v
origin [email protected]:myaccount/p2.git (fetch)
origin [email protected]:myaccount/p2.git (push)
origin [email protected]:myaccount/p2.git (push)
Ok, o git clone
funcionou, mas agora ele referencia duas linhas extras para os remotos, uma das quais é duplicada. Lembre-se dessas linhas extras ao trabalhar com o repo share-repo
? É sobre as primeiras duas linhas que ainda estão relacionadas ao antigo repo p2 que eu havia deletado.
Vamos tentar empurrar algumas alterações:
$ git touch .gitignore
$ git add .gitignore
$ git commit -m "first commit"
$ git push -v origin master
Pushing to [email protected]:myaccount/p2.git
Counting objects: 3, done.
Writing objects: 100% (3/3), 216 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:myaccount/p2.git
* [new branch] master -> master
updating local tracking ref 'refs/remotes/origin/master'
Pushing to [email protected]:myaccount/p2.git
To [email protected]:myaccount/p2.git
= [up to date] master -> master
updating local tracking ref 'refs/remotes/origin/master'
Everything up-to-date
Então, o git empurrou para repo p2 e tentou fazer isso uma segunda vez, já que os dois repos têm o mesmo nome e a mesma localização na minha conta bitbucket
, então obviamente descobriu que tudo estava atualizado.
Agora, eu poderia clonar qualquer repositório que eu queira, contanto que o repo p2
exista na minha conta Bitbucket
. Se eu quisesse push
algumas mudanças em digamos share-repo
, isso funcionaria, mas o git também tentaria empurrar as mesmas mudanças para o repositório p2
. É uma bagunça que eu me meti e não sei como resolver isso.
Para resumir, eu tive esta manhã um repositório chamado
p2
que eu deletei de
bitbucket
, então eu apaguei sua pasta do meu computador. Desde então, qualquer que seja o projeto git eu
cd
em,
git remote -v
me mostra que ele tem armazenado - em algum lugar - informações relacionadas ao repo final
p2
, em cima do repositório atual que estou trabalhando. Os comandos de atualização do Git - clone, push, pull - não funcionarão a menos que eu crie de volta esse repo
p2
on
Bitbucket
. Depois de fazer isso, os comandos de atualização do git aplicarão os comandos ao repositório atual em que estou trabalhando, bem como ao repo p2.
p2
não é o único repositório que eu excluí hoje, então estou curioso para saber o que aconteceu aqui.
Terei todo o prazer em receber toda a ajuda possível.