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:
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
Note o [pull] ff = only