nenhuma resposta, uma vez que já foi fornecida. apenas uma observação. Parece-me que um commit deve realmente ser chamado de save e o push deve ser chamado de commit. Problema no cenário de nomeação clássico.
Dublinx 10/09/19
Respostas:
1619
Basicamente git commit" registra alterações no repositório " enquanto git push" atualiza referências remotas junto com objetos associados ". Portanto, o primeiro é usado em conexão com o repositório local, enquanto o último é usado para interagir com um repositório remoto.
Aqui está uma bela imagem de Oliver Steele , que explica o modelo git e os comandos:
Leia mais sobre git pushe git pullno GitReady.com (o artigo que me referi primeiro)
O @ben github é apenas uma solução para hospedar seu repositório público "na nuvem" git pushpara trabalhar. Na realidade, o destino de git pushpode ser qualquer repositório git. Pode estar no seu próprio disco rígido local em outro diretório ( git remote add clone ~/proj/clone.git; git push clone masterou git push ~/proj/clone.git master, por exemplo), ou em um repositório git que seu próprio host atende.
Santa
2
então ... você precisa pressionar primeiro ou confirmar primeiro?
Kokodoko
5
@Piet começa no seu espaço de trabalho, onde você modifica arquivos. Então você adiciona-los ao índice, cometê-los para o repositório local e - finalmente - empurrá-los para o repositório remoto
tanascius
2
@ Mr.Hyde não, isso não é possível. O Git como um controle de versão distribuído requer que você tenha uma cópia local.
tanascius
215
confirmar : adicionando alterações ao repositório local
push : para transferir o último commit (s) para um servidor remoto
este é meu segundo dia de uso do GIT. Enquanto eu olho para as respostas acima, eu ainda não entendo uma imagem clara, mas sua resposta é perfeita. obrigado.
Bopha 13/05
1
Será que git pushcarrega os arquivos atualizados reais ou algum arquivo especial "diff"?
multigoodverse
27
git pushé usado para adicionar confirmações feitas no repositório local a um repositório remoto - além de git pullpermitir que as pessoas colaborem.
Como o git é um sistema de controle de versão distribuído, a diferença é que o commit confirmará as alterações no repositório local, enquanto o push enviará as alterações para um repositório remoto.
Confirmar : Instantâneo | Changeset | History_record | Versão 'Salvar como' de um repositório. Repositório Git = série (árvore) de confirmações .
Repositório local : repositório no seu computador.
Repositório remoto : repositório em um servidor ( Github ).
git commit: Anexe uma nova confirmação (última confirmação + modificações faseadas ) ao repositório local . (Todas as confirmações são armazenadas em /.git)
git push, git pull: Sincronize o repositório local com seu repositório remoto associado . push- aplicar alterações de local para remoto , pull- aplicar alterações de remoto para local .
Sua resposta é basicamente idêntica a essa resposta , não adiciona nada de novo.
7
Três coisas a serem observadas:
1) Working Directory ----- pasta onde nosso arquivo de códigos está presente
2) Repositório local ------ Isso está dentro do nosso sistema. Quando tomamos o comando COMMIT pela primeira vez, esse Repositório Local é criado. no mesmo local em que está nosso diretório de trabalho, o
arquivo Checkit (.git) é criado.
Depois disso, sempre que confirmarmos, isso armazenará as alterações que fazemos no arquivo do Diretório de Trabalho no Repositório local (.git)
3) Repositório remoto ----- Está situado fora do nosso sistema, como em servidores localizados em qualquer lugar do mundo. como o github. Quando fazemos o comando PUSH, os códigos de nosso repositório local são armazenados nesse repositório remoto
Você não pode enviar por push até que você confirme, como usamos git pushpara enviar por push os commits feitos em sua filial local para um repositório remoto.
O git pushcomando usa dois argumentos:
Um nome remoto, por exemplo, origin
Um nome de filial, por exemplo,master
Uma analogia muito grosseira: se compararmos git commitao salvar um arquivo editado, git pushcopiá-lo para outro local.
Por favor, não tire essa analogia desse contexto - confirmar e enviar não é como salvar um arquivo editado e copiá-lo. Dito isto, deve valer para comparações.
É mais fácil entender o uso dos comandos git adde commitse você imaginar um arquivo de log sendo mantido em seu repositório no Github. O arquivo de log de um projeto típico para mim pode se parecer com:
---------------- Day 1 --------------------
Message: Completed Task A
Index of files changed: File1, File2
Message: Completed Task B
Index of files changed: File2, File3
-------------------------------------------
---------------- Day 2 --------------------
Message: Corrected typos
Index of files changed: File3, File1
-------------------------------------------
...
...
...and so on
Normalmente começo o dia com uma git pullsolicitação e termino com uma git pushsolicitação. Portanto, tudo dentro do registro de um dia corresponde ao que ocorre entre eles. Durante cada dia, há uma ou mais tarefas lógicas concluídas que exigem a alteração de alguns arquivos. Os arquivos editados durante essa tarefa são listados em um índice.
Cada uma dessas subtarefas (Tarefa A e Tarefa B aqui) são confirmações individuais. O git addcomando adiciona arquivos à lista 'Índice de arquivos alterados'. Esse processo também é chamado de teste e, na realidade, os registros alteram os arquivos e as alterações executadas. O git commitcomando registra / finaliza as alterações e a lista de índices correspondente, juntamente com uma mensagem personalizada que pode ser usada para referência posterior.
Lembre-se de que você ainda está apenas alterando a cópia local do seu repositório e não a do Github. Depois disso, somente quando você fizer git pushtodas essas alterações registradas, juntamente com seus arquivos de índice para cada confirmação, será logado no repositório principal (no Github).
Como exemplo, para obter a segunda entrada nesse arquivo de log imaginário, eu teria feito:
git pull
# Make changes to File3 and File4
git add File3 File4
# Verify changes, run tests etc..
git commit -m 'Corrected typos'
git push
Em poucas palavras, git adde git commitpermite dividir uma alteração no repositório principal em sub-alterações lógicas sistemáticas. Como outras respostas e comentários apontaram, é claro que há muitos outros usos neles. No entanto, esse é um dos usos mais comuns e um princípio determinante por trás do Git, sendo um sistema de controle de revisão em vários estágios, diferente de outros populares como o Svn.
O git commit nada mais é do que salvar nossas alterações oficialmente; para cada commit que enviamos, uma vez concluído o commit, podemos enviá-lo para remoto para ver nossa mudança globalmente.
o que significa que podemos fazer numerosas confirmações antes de enviarmos para remoto (podemos ver a lista de confirmações ocorridas e as mensagens também) git salva cada confirmação com o ID de confirmação, que é um código de 40 dígitos
e eu uso o git push somente quando eu queria ver minha alteração no controle remoto (depois verificarei se meu código funcionava no jenkins)
Bem, basicamente o git commit coloca suas alterações no repositório local, enquanto o git push envia as alterações para o local remoto. Como o git é um sistema de controle de versão distribuído, a diferença é que o commit confirmará alterações no repositório local, enquanto o push enviará as alterações para um repositório remoto
git commité confirmar os arquivos preparados no repositório local. git pushé avançar rapidamente mesclar a ramificação principal do lado local com a ramificação principal remota. Mas a fusão nem sempre é bem sucedida. Se a rejeição aparecer, você precisará pullfazê-lo para obter sucesso git push.
Algumas pessoas podem querer forçar o empurrão em vez de puxar. Depende da situação. De fato, se você é refeito com base em uma ramificação que não está compartilhando com outras pessoas (mesmo em um repositório remoto), puxar certamente não é o que você deseja fazer.
Respostas:
Basicamente
git commit
" registra alterações no repositório " enquantogit push
" atualiza referências remotas junto com objetos associados ". Portanto, o primeiro é usado em conexão com o repositório local, enquanto o último é usado para interagir com um repositório remoto.Aqui está uma bela imagem de Oliver Steele , que explica o modelo git e os comandos:
Leia mais sobre
git push
egit pull
no GitReady.com (o artigo que me referi primeiro)fonte
git push
para trabalhar. Na realidade, o destino degit push
pode ser qualquer repositório git. Pode estar no seu próprio disco rígido local em outro diretório (git remote add clone ~/proj/clone.git; git push clone master
ougit push ~/proj/clone.git master
, por exemplo), ou em um repositório git que seu próprio host atende.confirmar : adicionando alterações ao repositório local
push : para transferir o último commit (s) para um servidor remoto
fonte
Bem, basicamente o git commit coloca suas alterações no repositório local, enquanto o git push envia as alterações para o local remoto.
fonte
git push
carrega os arquivos atualizados reais ou algum arquivo especial "diff"?git push
é usado para adicionar confirmações feitas no repositório local a um repositório remoto - além degit pull
permitir que as pessoas colaborem.fonte
Como o git é um sistema de controle de versão distribuído, a diferença é que o commit confirmará as alterações no repositório local, enquanto o push enviará as alterações para um repositório remoto.
fonte
Confirmar : Instantâneo | Changeset | History_record | Versão 'Salvar como' de um repositório. Repositório Git = série (árvore) de confirmações .
Repositório local : repositório no seu computador.
Repositório remoto : repositório em um servidor ( Github ).
git commit
: Anexe uma nova confirmação (última confirmação + modificações faseadas ) ao repositório local . (Todas as confirmações são armazenadas em/.git
)git push
,git pull
: Sincronize o repositório local com seu repositório remoto associado .push
- aplicar alterações de local para remoto ,pull
- aplicar alterações de remoto para local .fonte
git commit
registre suas alterações no repositório local .git push
atualize o repositório remoto com suas alterações locais.fonte
Três coisas a serem observadas:
1) Working Directory ----- pasta onde nosso arquivo de códigos está presente
2) Repositório local ------ Isso está dentro do nosso sistema. Quando tomamos o comando COMMIT pela primeira vez, esse Repositório Local é criado. no mesmo local em que está nosso diretório de trabalho, o
arquivo Checkit (.git) é criado.
Depois disso, sempre que confirmarmos, isso armazenará as alterações que fazemos no arquivo do Diretório de Trabalho no Repositório local (.git)
3) Repositório remoto ----- Está situado fora do nosso sistema, como em servidores localizados em qualquer lugar do mundo. como o github. Quando fazemos o comando PUSH, os códigos de nosso repositório local são armazenados nesse repositório remoto
fonte
Só quero adicionar os seguintes pontos:
Você não pode enviar por push até que você confirme, como usamos
git push
para enviar por push os commits feitos em sua filial local para um repositório remoto.O
git push
comando usa dois argumentos:Um nome remoto, por exemplo,
origin
Um nome de filial, por exemplo,master
Por exemplo:
fonte
Uma analogia muito grosseira: se compararmos
git commit
ao salvar um arquivo editado,git push
copiá-lo para outro local.Por favor, não tire essa analogia desse contexto - confirmar e enviar não é como salvar um arquivo editado e copiá-lo. Dito isto, deve valer para comparações.
fonte
É mais fácil entender o uso dos comandos git
add
ecommit
se você imaginar um arquivo de log sendo mantido em seu repositório no Github. O arquivo de log de um projeto típico para mim pode se parecer com:Normalmente começo o dia com uma
git pull
solicitação e termino com umagit push
solicitação. Portanto, tudo dentro do registro de um dia corresponde ao que ocorre entre eles. Durante cada dia, há uma ou mais tarefas lógicas concluídas que exigem a alteração de alguns arquivos. Os arquivos editados durante essa tarefa são listados em um índice.Cada uma dessas subtarefas (Tarefa A e Tarefa B aqui) são confirmações individuais. O
git add
comando adiciona arquivos à lista 'Índice de arquivos alterados'. Esse processo também é chamado de teste e, na realidade, os registros alteram os arquivos e as alterações executadas. Ogit commit
comando registra / finaliza as alterações e a lista de índices correspondente, juntamente com uma mensagem personalizada que pode ser usada para referência posterior.Lembre-se de que você ainda está apenas alterando a cópia local do seu repositório e não a do Github. Depois disso, somente quando você fizer
git push
todas essas alterações registradas, juntamente com seus arquivos de índice para cada confirmação, será logado no repositório principal (no Github).Como exemplo, para obter a segunda entrada nesse arquivo de log imaginário, eu teria feito:
Em poucas palavras,
git add
egit commit
permite dividir uma alteração no repositório principal em sub-alterações lógicas sistemáticas. Como outras respostas e comentários apontaram, é claro que há muitos outros usos neles. No entanto, esse é um dos usos mais comuns e um princípio determinante por trás do Git, sendo um sistema de controle de revisão em vários estágios, diferente de outros populares como o Svn.fonte
O git commit nada mais é do que salvar nossas alterações oficialmente; para cada commit que enviamos, uma vez concluído o commit, podemos enviá-lo para remoto para ver nossa mudança globalmente.
o que significa que podemos fazer numerosas confirmações antes de enviarmos para remoto (podemos ver a lista de confirmações ocorridas e as mensagens também) git salva cada confirmação com o ID de confirmação, que é um código de 40 dígitos
e eu uso o git push somente quando eu queria ver minha alteração no controle remoto (depois verificarei se meu código funcionava no jenkins)
fonte
Bem, basicamente o git commit coloca suas alterações no repositório local, enquanto o git push envia as alterações para o local remoto. Como o git é um sistema de controle de versão distribuído, a diferença é que o commit confirmará alterações no repositório local, enquanto o push enviará as alterações para um repositório remoto
fonte do Google
http://gitref.org/basic/ este link também será muito útil
https://git-scm.com/docs/git-commit
fonte
em termos leigos,
git commit
é a etapa antes degit push
executá-los nessa ordem para obter com êxito o seu arquivo no github.fonte
git commit
é confirmar os arquivos preparados no repositório local.git push
é avançar rapidamente mesclar a ramificação principal do lado local com a ramificação principal remota. Mas a fusão nem sempre é bem sucedida. Se a rejeição aparecer, você precisarápull
fazê-lo para obter sucessogit push
.fonte