Parece que minha instalação local de git
(versão 2.10.2) é tal que sempre que eu emiti git push
, isso é interpretado como git push -f
. Existe uma variável de configuração que eu poderia ter configurado incorretamente para causar esse comportamento?
Mais plano de fundo
Recentemente, o servidor que eu usei atualizou a instalação do GitLab (rodando a edição 8.14.2 b9442a5eb0, infelizmente, não há nenhuma maneira fácil para eu descobrir qual era a versão anterior). Para cada projeto que possuo (e tenho permissão de mestre), recebo
[Tue Dec 06 02:21 PM] ArchDesktop $ git push
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 765 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To REDACTED
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'REDACTED'
Suponho que isso se deva à implementação de "filiais protegidas" em versões mais recentes do GitLab. Agora, eu deveria ser capaz de empurrar coisas, já que tenho acesso mestre aos meus próprios projetos. Além disso, se fossem apenas problemas de permissão, a mensagem de erro, eu entendo, deveria ser lida
remote: GitLab: You are not allowed to force push code to a protected branch
sem menções de força . Então, a questão é: por que o Git está tentando forçar meus commits quando eu não digo?
Ainda mais fundo
Era uma vez eu li sobre como o Git funciona e realmente entendi. Então eu comecei a usá-lo e esqueci. Portanto, é inteiramente possível que eu esteja fazendo algo completamente errado e não entendendo isso. Eu nem sei como diagnosticar esse problema. Portanto, quaisquer comentários sobre o que eu preciso incluir nesta pergunta ou quais coisas óbvias devo verificar são bem-vindos!
Informações adicionais
Conforme solicitado: git config --list
fornece somente (além do meu nome, e-mail e a URL do repositório)
user.name=*******
user.email=******
push.default=simple
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=**************
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
Saída ligeiramente editada de GIT_TRACE=1 git push
:
09:13:50.859273 git.c:349 trace: built-in: git 'push'
09:13:50.859524 run-command.c:336 trace: run_command: 'ssh' '[email protected]' 'git-receive-pack '\''REDACTED.git'\'''
09:13:54.097551 run-command.c:336 trace: run_command: 'pack-objects' '--all-progress-implied' '--revs' '--stdout' '--thin' '--delta-base-offset' '--progress'
09:13:54.098218 exec_cmd.c:120 trace: exec: 'git' 'pack-objects' '--all-progress-implied' '--revs' '--stdout' '--thin' '--delta-base-offset' '--progress'
09:13:54.100884 git.c:349 trace: built-in: git 'pack-objects' '--all-progress-implied' '--revs' '--stdout' '--thin' '--delta-base-offset' '--progress'
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 389 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To REDACTED
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'REDACTED'