1
resposta

[remote rejected]

Olá, pessoal!

Estou na parte 4 da aula 3. Quando dou o comando git push local master ele recusa, informando que os arquivos ficarão incompatíveis com a minha work tree. Mas eu não alterei nada nesse meio tempo.

Ele até informa como ignorar, mas não soube utilizar o comando.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeOBS: Usei uma pasta de estudos que já tinha.

1 resposta

Olá Vinícius , tudo bem? Espero que sim

Peço desculpa pela demora em obter uma resposta.

Este erro ocorre quando iniciamos a pasta "servidor" com a ausência da flag --bare. A flag --bare serve para dizermos ao git que o repositório que iremos controlar servirá apenas como uma "central" de recebimentos de commit, mas não de arquivos. Já quando iniciamos o repositório sem a flag --bare, ou seja, digitando apenas git init estamos direcionando o diretório como uma pasta de trabalho do git, que servirá de recebimento e manipulação de arquivos e ao fazer o push para uma pasta que não foi iniciada com o --bare o git rejeita os arquivos, pois essa pasta não está vazia para apenas recebimentos de commits, por isso o erro remote rejected é gerado.

Sendo assim, para corrigir isso, abra o Git Bash e navegue até a pasta servidor. A título de curiosidade, um modo mais prático de abrir essa pasta já diretamente no Git Bash é ir até ela no windows explorer, clicar com o botão direito e selecionar Git Bash Here - caso esteja no Windows 11, basta clicar com o botão direito, selecionar "mais opções" e em seguida "Git Bash here", como mostro abaixo:

gif, no navegador de arquivos do Windows. A pasta se chama git, e há um arquivo tipo html chamado git, também. O botão direito do mouse é clicado, e surge o menu. A última opção, mostrar mais opções, é selecionada. Um novo menu surge, e a opção Git Bash Here é selecionada. O prompt de comando abre, mostrando o caminho da pasta

De posse da pasta "servidor" aberta no terminal do Git Bash, iremos digitar um comando para transformar essa pasta em um repositório --bare, ou seja, que só aceitará commits e para isso, digite:

git config --bool core.bare true

Agora, volte a pasta onde você realizou a tentativa do comando de push e tente fazê-lo novamente:

git push local master

Após isso, aparecerá a mensagem Enumerating objects, done. * [new branch] master -> master, que significa que o push foi efetuado com sucesso e você poderá prosseguir com os ensinamentos do curso.

Espero ter te ajudado. Fico à disposição em caso de dúvidas.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!