Resolução de conflitos ou prevenção de conflitos no GIT?
Questões: Como várias pessoas pretendem trabalhar com o GIT? É update-commit usual como no SVN ou é mesclar o padrão? Ao mesclar, quem deve aparecer como o autor do commit de mesclagem?
Muito deinformação de fundo: Estou escrevendo um artigo sobre LaTeX com outro cara e estamos usando o GIT para o controle de versão.
Desde o início, decidimos que ambos trabalharíamos no ramo principal, porque somos de qualquer maneira apenas duas pessoas.
Eu fiz um número de commits. Então ele fez um commit sobre uma versão antiga e fundiu a minha última versão e a mais recente (depois do commit). Isso é mais fácil de ver com uma foto:
Para mim, é estranho fazer a mesclagem dessa maneira, se não estou enganado, ele deveria ter puxado primeiro e depois comprometido, a fusão deve ser feita entre dois ramos diferentes.
Mais estranho de tudo, meus commits não são deletados a qualquer momento, mas o conteúdo aparece como novo no último commit e ele aparece como o autor. Isso parece um bug, mas para dizer a verdade eu não entendo o que está acontecendo aqui.
Então as perguntas são:
Isso é um erro?
Deveríamos estar usando ramos para trabalhar separadamente? Eu poderia estar ignorando seus commits se ele não os empurrar para o servidor de qualquer maneira.
Ele usou o sistema corretamente ou deveria ter feito um pull antes de confirmar como no SVN (update -> commit)?
Por último, fiz um branch, um commit e um merge (que ainda não estão na imagem), e provavelmente a mesma coisa acontecerá novamente porque agora o master está atualizado e ele provavelmente irá ignorar essas atualizações, commit, em seguida, mesclar como o autor.
Isso não parece certo para mim, mas eu não sei se está certo ou não.
Na minha humilde opinião: merge deve ser feito localmente, antes de enviar as atualizações para o repositório compartilhado, como em uma atualização de consolidação.