1
resposta

Para as novas versões do Git (Avisos hint:)

Se vocês assim como eu, acabou recebendo essa mensagem, saiba que é o padrão do git para as novas versões, aqui há a explicação. E como vocês podem procederem.

remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 9 (delta 3), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), 2.91 KiB | 1.45 MiB/s, done.
From /home/cabeca/Development/git_world/github_server
 * branch            main       -> FETCH_HEAD
   e40720c..94c1560  main       -> local/main
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint: 
hint:   git config pull.rebase false  # merge (the default strategy)
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint: 
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.

Basicamente o git pede para que você defina localmente ou globalmente a estratégia de mesclagem padrão para os próximos pulls, essa nova atualização foi boa, pois garante um dinamismo, quando você opta por escolher a estratégia de mesclagem a usar passando uma flag a cada pull, isso se configurado com Fast Forward Only git config --global pull.ff only, não sendo necessário sempre alterar a configuração padrão antes do pull, você então passa a escolher se quer rebase ou merge solicitando explicitamente uma dessas duas estratégias.

Logo no ato do pull, opte por:

git pull --rebase=false {nome-repo-remota} {branch}

ex.: git pull --rebase=false local main

Para o merge, ou:

git pull --rebase=true {nome-repo-remota} {branch}

ex.: git pull --rebase=true origin master

Para o rebase.

Fast Forward Only, significa que o git sempre vai tentar realizar o pull se possível (Quando não há conflito), havendo conflito o git aborta, e deixa que você escolha oque quer fazer (Deixei configurado assim no meu caso, para ter mais controle no que estou fazendo).

Eu não consegui entender o --rebase=merges, e as demais outras opções possíveis da flag --rebase, são essas:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Essa discussão no Stackoverflow está mais detalhada, vale a pena ver.

Bom... foi isso o pouco que consegui entender, por favor, me corrijam se eu estiver errado.

Tip: se você estiver no amado linux, pode ver se a configuração foi definida corretamente usando o binário cat, ou qualquer outro de sua escolha para ver as cfgs padrões:

cat ~/.gitconfig

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Note o [pull] ff = only

1 resposta

Caramba, Victor Intenso!!! Só queria te parabenizar, porque até agora esse assunto de git e github tá sendo a minha maior dificuldade.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software