Qual é a diferença entre o git add
, push
e commit
?
Só um pouco confuso vindo do SVN, onde "update" irá 'adicionar' coisas, e o commit fará um "push" e irá 'adicionar' também
Existem todas as funções diferentes dentro do git. Esperando alguma explicação de sua experiência.
Respostas:
git add
adiciona seus arquivos modificados à fila para serem confirmados posteriormente . Os arquivos não foram confirmadosgit commit
confirma os arquivos que foram adicionados e cria uma nova revisão com um log ... Se você não adicionar nenhum arquivo, o git não fará o commit de nada. Você pode combinar as duas ações comgit commit -a
git push
empurra suas mudanças para o repositório remoto.Esta figura desta folha de dicas do git dá uma boa ideia do fluxo de trabalho
git add
não está na figura porque a forma sugerida de comprometer é o combinadogit commit -a
, mas você pode adicionar mentalmente umgit add
ao bloco de mudança para entender o fluxo.Por último, a razão pela qual
push
é um comando separado é por causa dagit
filosofia de.git
é um sistema de controle de versão distribuído e seu diretório de trabalho local é o seu repositório! Todas as alterações que você confirma são instantaneamente refletidas e registradas.push
só é usado para atualizar o repositório remoto (que você pode compartilhar com outras pessoas) quando terminar tudo o que estiver trabalhando. Esta é uma maneira legal de trabalhar e salvar as alterações localmente (sem sobrecarga de rede) e atualizá-lo apenas quando quiser, em vez de a cada commit. Isso indiretamente resulta em commits / ramificações mais fáceis, etc (por que não, certo? Quanto isso custa para você?) O que leva a mais pontos de salvamento, sem mexer com o repositório.fonte
git add
seleciona mudançasgit commit
registra mudanças LOCALMENTEgit push
mudanças de açõesfonte
git add
adiciona arquivos ao índice Git, que é uma área de teste para objetos preparados para serem confirmados.git commit
confirma os arquivos do índice para o repositório,git commit -a
é um atalho para adicionar todos os arquivos rastreados modificados ao índice primeiro.git push
envia todas as alterações pendentes para o repositório remoto para o qual seu branch está mapeado (por exemplo, no GitHub).Para entender o Git, você precisaria investir mais esforço do que apenas dar uma olhada na documentação, mas definitivamente vale a pena. Apenas não tente mapear comandos Git diretamente para o Subversion, já que a maioria deles não tem uma contraparte direta.
fonte
Eu estava confuso sobre o que 'adicionar' realmente faz. Acabei de ler um parágrafo muito esclarecedor do livro Git Pro que gostaria de adicionar aqui, porque esclarece as coisas
“Acontece que Git prepara um arquivo exatamente como ele é quando você executa o comando git add. Se você confirmar agora, a versão de benchmarks.rb como estava quando você executou o comando git add pela última vez é como ele irá para o commit, não a versão do arquivo como ele aparece em seu diretório de trabalho quando você executa git commit. Se você modificar um arquivo depois de executar git add, terá que executar git add novamente para preparar a versão mais recente do arquivo: ”
Trecho de: Chacon, Scott. “Pro Git.” Springer, 19-08-2009T00: 00: 00 + 00: 00. iBooks. Este material pode estar protegido por direitos autorais.
fonte
add diz ao git para começar a rastrear um arquivo.
commit compromete suas mudanças atuais em seu repositório local
push empurra o repositório local para o upstream.
fonte
Acho esta imagem muito significativa:
(de: Oliver Steele -My Git Workflow (2008) )
fonte
Pdf muito bom sobre muitos segredos do GIT.
Adicionar é o mesmo que add do svn (porém às vezes é usado para marcar o arquivo resolvido).
O commit também é o mesmo que o do svn, mas ele confirma as alterações em seu repositório local.
fonte
add -in git é usado para dizer ao git quais arquivos nós queremos enviar, ele coloca os arquivos na área de teste
commit- in git é usado para salvar arquivos na máquina local para que se fizermos qualquer alteração ou mesmo deletar os arquivos, ainda possamos recuperar nossos arquivos submetidos
push - se enviarmos nossos arquivos para a máquina local, eles ainda estarão sujeitos a serem perdidos se nossa máquina local for perdida, danificada, etc, para manter nossos arquivos seguros ou para compartilhar nossos arquivos geralmente queremos mantê-los em um controle remoto repositório como o Github. Para salvar em repositórios remotos, usamos push
exemplo Preparando um arquivo denominado index.html git add index.html
Confirmando um arquivo que é testado git commit -m 'nome do seu commit'
Enviando um arquivo para Github git push origin master
fonte