3
respostas

Atividade prática: Conflitos com rebase

Quando estou tentando utilizar o git rebase titulo aparece uma mensagem de erro que não estou coseguindo resolver.

$git rebase titulo index.html: needs merge error: cannot rebase: You have unstaged changes. error: additionally, your index contains uncommitted changes. error: Please commit or stash them.

Ele saiu da master, foi para uma branch aleatória que o Git mesmo criou e já tentei commitar e ele só aceita. Quando tentei sair dessa branch fala que Warning: you are leaving 1 commit behind, not connected to any of your branches.

Poderia me ajudar? por favor

3 respostas

Olá Gabriel, tudo bem? O erro aconteceu porque quando você tentou executar o comando git rebase titulo no seu branch "master" existia modificações que não foram adicionadas a um commit, e se o rebase tivesse sido concluído, então essas alterações teriam sido perdidas. Nesse caso, o próprio Git fala o que devemos fazer na seguinte parte do erro:

Please commit or stash them.

Assim, devemos fazer um commit, porém como você mesmo falou que não conseguiu fazer o commit, então devemos executar o stash da seguinte forma:

git stash

Esse comando esconde as alterações para uma posterior utilização, então vamos poder concluir o rebase e depois recuperar essas alterações se caso desejarmos.

Fala pra gente se funcionou!

Olá Jonilson, tudo sim. E com você? Tentei executar o comando git stash e ele me retornou da seguinte forma:

index.html: needs merge

Eu interpretei que preciso utilizar o comando git merge (O que não faz sentido já que estou utlizando git rebase) e quando tento executar o git rebase titulo ele retorna:

fatal: It seems that there is already a rebase-apply directory, and
 I wonder if you are in the middle of another rebase. If that is the case, please try
    git rebase (--continue | --abort | --skip)
If that is not the case, please
    rm -fr ".git/rebase-apply"
and run me again. I am stopping in case you still have something valuable there.

Concluí que o Git pensa que já tenho um git rebase aplicado e ele pergunta se devo mante-lo ou não, porém quando tento manter ou remover através de um desses comandos, ele me retorna a primeira mensagem:

index.html: needs merge

Que estranho isso Gabriel! Você poderia executar o comando:

git log

E colocar o resultado aqui pra gente analisar! O que penso é que se fosse um merge, agente poderia tentar executar o seguinte comando:

git reset --merge

Outra coisa, você poderia mandar uns prints do terminal pra gente dá uma olhada também, você pode colocar no Google Drive e informa o link aqui pra gente acessar!