Diferenças entre Confirmar, Confirmar e Enviar, Confirmar e Sincronizar

149

Estou usando o visual studio 2013 e me deparo com três opções para quando eu confirmar meu código c #. Preciso de uma explicação das diferenças entre cada uma das opções em relação ao que acontece com meu repositório local versus o repositório GitHub.

  • A opção 1 diz Confirmar
  • A opção 2 diz Commit and Push
  • A opção 3 diz Confirmar e sincronizar

Não entendo bem a diferença entre as duas últimas opções. Quando devo usar Confirmar e Sincronizar em vez de Confirmar e Enviar?

Alfred Waligo
fonte

Respostas:

216
  1. A confirmação simplesmente registrará as alterações feitas na máquina local. Não marcará a alteração no repositório remoto.
  2. Confirmar e enviar as opções acima e enviá-las para o repositório remoto. Isso significa que todas as alterações feitas serão salvas no repositório remoto também.
  3. Confirmar e sincronizar faz três coisas. Primeiro, ele irá confirmar. Segundo, ele executará um pull (captura as informações atualizadas do repositório remoto). Finalmente, ele vai empurrar.

Veja mais da Microsoft aqui

camiblanch
fonte
Eu realmente não entendo o "Confirmar e sincronizar" Primeiro, ele será confirmado. Segundo, ele executará um puxão Finalmente, ele pressionará. Por que o push é necessário aqui quando as alterações de código já estão confirmadas no repositório remoto (sem alterações no push).
Bhuwan Pandey
6
@BhuwanPandey Executar um "commit" não inclui um "push". Eles são separados. Somente um "push" atualizará seu commit no repositório remoto. Veja a imagem na outra resposta para ver isso. O "comprometer" vai do índice de repositório local, enquanto acabamentos "push", indo a partir do repositório local para o repositório remoto
camiblanch
A operação de sincronização pode causar conflitos quando vários usuários trabalham simultaneamente no aplicativo?
Murali Dhar Darshan
Estou usando o Visual Studio 2017, e o comando Confirmar e sincronizar não envia por push suas alterações completamente. Estou dizendo isso porque, ao executar uma sincronização, minhas alterações são mostradas na guia histórico no Visual Studio, mas no site do Github não aparece. Eu tive que executar um comando Push após Commig e Sync e, em seguida, minhas alterações apareceram no site do Github.
Fabiano
Eu acho que a confusão vem de pensar que o Commit envia arquivos para o repositório remoto. Na verdade, o Commit apenas registra suas edições no repositório local. Sem Push, ele nunca atinge o servidor.
Alan Baljeu
72

Para adicionar à resposta de camieblanch. Encontrei esta foto / postagem útil do tanascius ( aqui ). "Aqui está uma bela imagem de Oliver Steele, que explica o modelo git e os comandos:" insira a descrição da imagem aqui

A.sharif
fonte
1
Mas onde está o Sync nesta foto?
Alan Baljeu
2
Não existe na imagem. Se você voltar à resposta de "camiblanch". Ele é comprometido com seu repositório local, puxa para sincronizar (mesclar) o repositório remoto com o repositório local e, em seguida, envia o repositório local mesclado para o repositório remoto.
A.sharif 13/01