yuri@MintOS ~/Modelos/Projeto Programming/Project $ git push -u origin master
Username for 'https://github.com': yuriProgramador
Password for 'https://yuriProgramador@github.com':
To https://github.com/yuriProgramador/web5Presentation
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/yuriProgramador/web5Presentation'
dica: Updates were rejected because the tip of your current branch is behind
dica: its remote counterpart. Integrate the remote changes (e.g.
dica: 'git pull ...') before pushing again.
dica: See the 'Note about fast-forwards' in 'git push --help' for details.
Ele pede usuário e senha
git fetch origin
git merge origin master
yuri@MintOS ~/Modelos/Projeto Programming/Project $ git fetch origin
yuri@MintOS ~/Modelos/Projeto Programming/Project $ git merge origin master
merge: origin - not something we can merge
Dá esse erro porque origin não é uma branch. Tenta fazer que nem no começo, só que sem o remotes
:
git merge origin/master
Não entendi bem, mas é pra fazer assim?
O resultado foi isto:
yuri@MintOS ~/Modelos/Projeto Programming/Project $ git merge origin/master
fatal: refusing to merge unrelated histories
Ou é pra fazer desta maneira: git merge remotes/origin/master
Como é que tu criou esse esquema?
Vc criou um repositório no github vazio? Ou criou aquele com um readme.md
, que já começa com um commit? Descreve pra mim detalhadamente o processo de criação do remoto e do local. Você fez clone? Ou deu um git init
? To suspeitando que tem algo errado com esse commit inicial.
De qualquer forma, tenta fazer isso aqui:
git merge --allow-unrelated-histories origin/master
Você fez certo, nas duas vezes. O remotes
no começo é opcional. Tem algo errado com esse commit inicial ali.
É o seguinte:
- Criei um repositório localmente
- Fui adicionando os arquivos e fazendo commits
- Criei um repositório no GitHub com um HEADME já incluso pelo próprio site do GitHub, será que é isso o problema?
OBS: Eu estou aprendendo git com um canal do YouTube e lembor perfeitamente que o cara falou que quando eu fosse criar um repositório no GitHub eu não fizesse nenhum commit, pois traria muita dor de cabeça, será que tem a ver?
Entendi, e encontramos teu problema.
Veja bem: quando você criou o repo no github, ele já tem um commit, certo?
Depois, você criou um repositório local. O commit inicial já é diferente. Você foi evoluindo o local e agora, no final, quer fazer com que o local va para o remote. O problema é que são duas histórias de commits completamente diferentes. Por isso o git tá se recusando a fazer merge. Para fazer o merge normal, as duas branches devem ter um ancestral em comum. Nesse caso, elas não tem.
Você tem duas alternativas:
-
Faz um merge de histórias que não tem um ancestral comum (tenta o comando q eu mandei antes ali). Eu nunca tentei fazer isso e não tenho como testar agora, to no celular
-
Apaga o repositório no github e faz um novo sem nada
Aperta ctrl+x
pra sair. Vai aparecer uma mensagem perguntando se vc quer salvar. Digita y
e aperta enter
pra confirmar
Eu vou deletá-lo e criar um novo, acho melhor
Pera que parece que deu certo!! Tava indo o merge ali na foto q vc mandou kkkkk abriu o editor pra vc digitar uma mensagem de commit pra terminar.
Já deletei o repositório, kk
E agora, faço o que? Digito o comando que você me passou?
Ah, agora então só apaga o remoto antigo
git remote rm origin
E adiciona o novo
git remote add origin <link>
E dá push setando a upstream
git push -u origin master
Uma perguntinha, O que faz esse -u e o upstream?
Ahh outra coisa, o link pode ser https ou ssh? Eu posso usar qualquer um??