Observando o grafo, dá pra ver que teria como fazer um fast-forward da origin/master pra tua master local. Sinceramente não sei porque isso tá acontecendo. No erro que você colou, ele tá reclamando que tua branch atual não tem uma upstream. Pra corrigir isso, você pode tentar fazer assim:
git push -u origin master
1 curtida
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.
git fetch origin
git merge origin master
1 curtida
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
2 curtidas
Você fez certo, nas duas vezes. O remotes
no começo é opcional. Tem algo errado com esse commit inicial ali.
1 curtida
É 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
1 curtida
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.
1 curtida
Já deletei o repositório, kk
1 curtida
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?