0

Estava usando o .git normalmente em meu projeto, ontem digitei alguma coisa errada e o git começou a me devolver um alerta do arquivo index corrompido.

Ok, dei um git reset, voltei um commit e tudo voltou ao normal.

Bom, trabalhei hoje de manhã, a na hora que fui dar um push para o meu servidor, simplesmente não funciona, essa é a mensagem de erro (o terminal de baixo):

inserir a descrição da imagem aqui

Bom, não estou descobrindo o erro, todas as pastas estão com permissão 777, e pertencem ao mesmo grupo e usuário tanto na máquina local como no servidor.

Local: Ubuntu 16.4 LTS Servidor: Debian 7

Ambas estão na mesma rede.

2
  • Já tentou rodar o comando com sudo? Commented 28/07/2017 às 13:07
  • Esse erro ja foi rodado com sudo aberto Commented 28/07/2017 às 13:22

2 Respostas 2

2

O erro do git refere-se a perca ou a não referência entre a sua branch local master e a master remota. Perdendo a referencia do HEAD.

Ao iniciar o projeto você aplicou o comando git init?

Isso significa que qualquer pessoa que aplicar o push "forçadamente" para este ramo irá substituir o status existente da cópia de trabalho verificada, ou seja, a referência a HEAD. Isso não é uma coisa boa.

Para resolver isso, você usa um repositório descoberto como um repo "comunitário" (faça isso com git init --bare) ou trabalhe com brands a partir da master, conforme fez:

git checkout -b nome_branch

Faça as alterações nesse ramo e aplique commit. Em seguida, aplique o push seu ramo com git push origin nome_branch. Depois disso, seu ramo remoto pode ser "mergeado" no mestre.

Aconselho sempre evitar "commitar" na master. Você pode bloquear isso através do site github. Crie o hábito de criar branchs a partir da master e "mergear" as alterações nela. Só não esqueça de sempre atualizar seu master local git pull toda vez que for criar uma nova branch para sempre ter a cópia atualiza do remoto.

2
  • Eu não estou utilizando o github nesse projeto, meu repositório é interno por se tratar de um sistema intranet, teria como bloquear a branch master para todos os usuários da rede exceto o admin do servidor? Commented 28/07/2017 às 15:07
  • Até onde eu sei e pelo o que pude pesquisar rapidinho. Esse conceito quem aplica é o github, não o git. Por isso no seu caso já não daria certo. Eu não sei qual o motivo de você ter criado um repositório interno, mas se for apenas para tê-lo como private, há duas soluções no mercado free que podem te ajudar a aplicar o que eu expliquei na resposta. gogs e gitlab
    – DNick
    Commented 28/07/2017 às 15:19
0

SOLUÇÃO:

1 - Criar um nova branch no pc local e setar.

git checkout -b 'project'

2 - Solicitar o push

git push --set-upstream origin project

A partir daqui, apenas usar o comando:

git push

Você deve fazer log-in para responder a esta pergunta.

Esta não é a resposta que você está procurando? Pesquise outras perguntas com a tag .