Por que devo pressionar se estou trabalhando sozinho em um repositório local?

21

Estou interagindo com o Git através do GitHub para Windows , o que é engraçado, pois nunca enviarei meu repositório para o GitHub. Estou trabalhando sozinho e deve ser usado apenas por mim. Percebi que meus commits estão listados em "commits não sincronizados" e em "history" diz "no commit". O que me leva à questão: o que alcançarei pressionando, exceto meus compromissos listados em "histórico"?

Moshe Revah
fonte
14
Vale a pena ressaltar uma significativa falta de entendimento: se você não enviou nada remotamente, todo o seu trabalho está no repositório local em disco. Perca sua máquina, perca tudo o que você já fez.
Lars Viklund

Respostas:

40

Você está tecnicamente correto - não há necessidade real de pressionar se não estiver compartilhando o código com ninguém.

Então, novamente, seu laptop tem um disco rígido fabricado pelo menor lance. Sua casa pode queimar antes que o disco rígido falhe. Você pode querer olhar seu código remotamente. Ou até mesmo compartilhe com alguém.

Agora, com o Github, eles exigem que tudo seja público ou você precisa pagar por repositórios privados. Portanto, se você quiser mantê-lo para si mesmo, confira o bitbucket, que permite fazer o git, mas também possui repositórios privados gratuitos.

Outra opção seria salvar seu repositório git em algum lugar com backup remoto. Mas existem poucas vantagens em fazer isso, em vez de apenas usar um provedor de SCM na nuvem atualmente.

Wyatt Barnett
fonte
O BitBucket oferece um número praticamente ilimitado de acordos privados de graça .
Há muitas razões para empurrar. O fluxo de trabalho realmente não muda muito. Você trabalha cometer, cometem, cometer, terminar um fluxo de trabalho e empurrão ...
Rig
7

Há outro motivo pelo qual você gostaria de enviar um repositório (mesmo que seja, de uma forma ou de outra, local): estações de trabalho .

Não conheço você, mas trabalho em 4 computadores diferentes (1 PC em casa, 1 Laptop, 1 Office Office e 1 Office Laptop) e fazer alterações em um servidor Git configurado corretamente no servidor da minha empresa tornam a sincronização rápida e rápida. sem dor. Como o Git é um DVCS, está colocando essa vantagem em uso: não são apenas backups, mas todas as diferentes bases de código em que estou trabalhando podem ser facilmente mescladas, verificadas e analisadas.

Pode ser local se, por exemplo, o seu PC em casa for o "servidor" (ou a origem) e você tiver um laptop em casa - dessa forma, você poderá facilmente sincronizar.

Nota : As pessoas costumam dizer "Prefiro usar o Dropbox (ou qualquer outro serviço de sincronização)". A enorme quantidade de objetos que um repositório Git possui torna ridículo usar o Dropbox assim. É uma opção, mas eu não diria uma boa.

AeroCross
fonte
+1, eu definitivamente faria o mesmo no seu caso. O que você faz se esqueceu de empurrar em casa e agora está no trabalho?
Moshe Revah
2
@Zippoxer Concentre-se em outra tarefa e mescle mais tarde.
Bytebuster 31/07/12
Exatamente, o que @bytebuster disse. Essa é a beleza dos DVCS! (Embora, com bastante prática, você não vai esquecer de novo!)
AeroCross
Alternativamente: Trabalho em um projeto paralelo / hobby para relaxar ou explorar novas idéias etc. :-)
Johannes
6

Como um SCM distribuído, o git distingue entre os conceitos 'faça um instantâneo da cópia de trabalho' (confirmação) e 'repositórios de sincronização' (push / pull / fetch).

Se você tiver apenas um clone local do seu repositório, não faz sentido pressionar. No entanto, com github, você faz tem um outro clone (aquele no github), e empurrando as alterações não tem pelo menos uma vantagem: backup. Se o seu computador morrer, você ainda terá tudo empurrado até agora no github.

Obviamente, esse não é o objetivo principal do github; O github é destinado ao compartilhamento de código; portanto, se seu projeto estiver no github, você poderá permitir que outras pessoas extraiam de lá, clonem seu projeto, atendam a solicitações de recebimento de seus clones ou até mesmo dêem a outros usuários confiáveis ​​o acesso por push ao seu repositório.

Outro motivo para pressionar é se você usar vários clones locais. Isso pode ser útil para várias coisas: por exemplo, você pode querer trabalhar em duas ramificações diferentes ao mesmo tempo ou tentar operações possivelmente destrutivas no seu repositório; se tudo funcionar como pretendido, você manterá o clone modificado (ou enviará as alterações de volta ao repositório original), mas se tudo der errado, basta excluir o clone confuso e voltar ao original (que ainda permanece inalterado) .

Algumas pessoas até usam o git para implantação: a versão de produção também é um repositório do git, e atualizar para uma versão mais recente é uma questão de busca e retirada (obviamente, isso só funciona se você não precisar de uma etapa de compilação). Eu não recomendaria necessariamente para coisas sérias, mas para coisas pequenas é uma solução simples e pragmática.

tdammers
fonte