Configuração do repositório Git para desenvolvimento a partir de duas máquinas?

Acabei de começar a usar o git e estou impressionado com as diferenças de fluxo de trabalho do SVN, mas encontrei uma questão estrutural / de configuração: a documentação não parece explicar intuitivamente como configurar, e estou me perguntando se é até possível.

Minha configuração é que tenho vários computadores dos quais desenvolvo (desktop e laptop); portanto, para manter a sincronização mais fácil e fornecer backup para o repositório git, configurei um repositório nu "público" no meu servidor Linux doméstico do qual pode ssh no desktop e laptop. Não é realmente público, pois requer acesso SSH à caixa para chegar.

Meu problema surge quando eu faço alterações na minha área de trabalho. Posso facilmente fazer alterações no repositório do servidor (eu tenho omirror sinalizador definido para oorigin remoto nesse repositório) e usandogitx Percebo que os estados local e remoto parecem idênticos e cada uma das minhas confirmações individuais foi registrada no servidor.

A questão é quando eu mudo para o meu laptop, que uso com pouca frequência, o repositório git provavelmente possui vários commits por trás da versão do servidor e precisa ser atualizado. Eu comecei a usargit pull para obter essas alterações locais, mas em vez de duplicar todas as confirmações individuais no servidor para o repositório local, ele adiciona uma nova confirmação de 'mesclagem' ao repositório local egitx mostra a mesclagem na ramificação do repositório remoto nesse ponto.

Existe um comando / fluxo de trabalho que me permita atualizar o repositório local para o estado exato do repositório remoto (por exemplo, se eu fizer umgit push --mirror nenhum dado seria perdido)? Eu precisaria excluir meu repositório local toda vez egit clone de novo a cada vez?

Atualmente, ninguém mais precisaria acessar esse repositório, embora no futuro ele possa se tornar um repositório público para as pessoas extraírem, assim as respostas que não destroem essa possibilidade serão apreciadas.

Editar: Meus commits incluem rebasing branches fora do branch master; poderia ser isso que está desencadeando ogit pull comando para mostrar como uma mesclagem? É o--rebase sinalizar o que eu preciso então?

Explicação da solução: Acontece que eu tinha feito o seguinte para configurar meus repositórios:

Use laptop para inicializar um repositório gitEnvie o repositório do laptop para o servidor (confirmarA)Fiz uma alteração e a comprometi no laptop (laptop em commitB)Repositório de servidores de clones de desktop (confirmaçãoA)Faça alterações na área de trabalho e confirme (confirmaC, D, E, incluindo ramificações de rebasamento)A área de trabalho envia para o servidor (o servidor avança rapidamente paraE)Quando o laptop sai do servidor, resulta em uma mesclagem (desdeB não pode avançar rapidamente paraE)Laptop mescla e envia alterações para o servidorAgora a área de trabalho também precisa ser mesclada.

Por causa desse único commit extra que foi um erro não intencional de newb, me levou a pensar que sempre seria uma fusão. Por sugestão de Xentac, voltei e descobri no laptop que havia feito uma fusão que não foi enviada ao servidor, que era o culpado, e depois que os três estavam realmente sincronizados,git pull --ff (forçar apenas mesclagens de avanço rápido) funciona bem e avisa se algo está fora de sincronia antes de fazer a mesclagem.

questionAnswers(2)

yourAnswerToTheQuestion