Como posso preparar e confirmar todos os arquivos, incluindo arquivos adicionados recentemente, usando um único comando?
Como posso preparar e confirmar todos os arquivos, incluindo arquivos adicionados recentemente, usando um único comando?
Respostas:
Faz
git add -A && git commit -m "Your Message"
contar como um "comando único"?
Edite com base na resposta de @ thefinnomenon abaixo :
Para tê-lo como git alias, use:
git config --global alias.coa '!git add -A && git commit -m'
e confirme todos os arquivos, incluindo novos arquivos, com uma mensagem com:
git coa "A bunch of horrible changes"
Explicação (da git adddocumentação ):
-A, --all, --no-ignore-remoção
Atualize o índice não apenas onde a árvore de trabalho possui um arquivo correspondente, mas também onde o índice já possui uma entrada. Isso adiciona, modifica e remove entradas de índice para corresponder à árvore de trabalho.
Se não
<pathspec>for fornecido quando a opção -A for usada, todos os arquivos em toda a árvore de trabalho serão atualizados (versões antigas do Git usadas para limitar a atualização ao diretório atual e seus subdiretórios).
git add -A ; git commit -m "Your Message"
Este comando adicionará e confirmará todos os arquivos modificados, mas não os arquivos recém-criados .
git commit -am "<commit message>"
No man git-commit:
-a, --all
Tell the command to automatically stage files that have been modified
and deleted, but new files you have not told Git about are not
affected.
Eu uso esta função:
gcaa() { git add --all && git commit -m "$*" }
No meu arquivo de configuração zsh, para que eu possa fazer:
> gcaa This is the commit message
Preparar e confirmar automaticamente todos os arquivos.
function gcaa() { git add --all && git commit -m "$*" && git push }
gaa && gc -m "my commit"mas isso é muito melhor ... <sai correndo para mudar o bashrc ..>
Uma linha para preparar TODOS os arquivos ( modificados , excluídos e novos ) e confirmar com o comentário:
git add --all && git commit -m "comment"
http://git-scm.com/docs/git-add
http://git-scm.com/docs/git-commit
Não sei por que essas respostas dançam em torno da solução que eu acredito ser a melhor, mas o que vale aqui é o que eu uso:
git config --global alias.coa '!git add -A && git commit -m'
git coa "A bunch of horrible changes"
NOTA: coaé abreviação de comprometer tudo e pode ser substituído por qualquer coisa que seu coração desejar
git aliascaminho, o resto é chato.
A confirmação no git pode ser um processo de várias etapas ou uma etapa, dependendo da situação.
Essa situação é onde você tem vários arquivos atualizados e deseja confirmar:
Você precisa adicionar todos os arquivos modificados antes de confirmar qualquer coisa.
git add -A
ou
git add --all
Depois disso, você pode usar confirmar todos os arquivos adicionados
git commit
com isso, você deve adicionar a mensagem para esse commit.
Se você quiser apenas uma maneira "rápida e suja" de ocultar alterações na ramificação atual, use o seguinte alias:
git config --global alias.temp '!git add -A && git commit -m "Temp"'
Após executar esse comando, você pode apenas digitar git temppara que o git confirme automaticamente todas as suas alterações no ramo atual como um commit chamado "Temp". Em seguida, você pode usar git reset HEAD~mais tarde para "descomprimir" as alterações para continuar trabalhando nelas, ou git commit --amendpara adicionar mais alterações ao commit e / ou dar um nome adequado.
Eu tenho na minha configuração dois aliases:
alias.foo=commit -a -m 'none'
alias.coa=commit -a -m
se eu sou muito preguiçoso, apenas cometo todas as alterações com
git foo
e apenas para fazer um commit rápido
git coa "my changes are..."
coa significa "comprometer tudo"
Execute o comando fornecido
git add . && git commit -m "Changes Committed"
No entanto, mesmo que pareça um único comando, são dois comandos separados, um por um. Aqui nós costumávamos &&combiná-los. Não é muito diferente de correr
git add .e git commit -m "Changes Committed"separadamente. Você pode executar vários comandos juntos, mas a sequência é importante aqui. Como se você quiser enviar as alterações para o servidor remoto juntamente com a preparação e a confirmação, poderá fazê-lo conforme o indicado,
git add . && git commit -m "Changes Committed" && git push origin master
Em vez disso, se você alterar a sequência e colocar o pushprimeiro, ele será executado primeiro e não fornecerá o push desejado após a preparação e confirmação apenas porque já foi executado primeiro.
&&executa o segundo comando na linha quando o primeiro comando retornar com sucesso ou com um nível de erro igual a 0. O oposto de &&é ||, que executa o segundo comando quando o primeiro comando não tiver êxito ou com um nível de erro igual a 1.
Como alternativa, você pode criar alise as git config --global alias.addcommit '!git add -a && git commit -m'e usá-lo comogit addcommit -m "Added and commited new files"
Ótimas respostas, mas se você procurar uma linha de singe fazer tudo, poderá concatenar o alias e aproveitar a conveniência:
git add * && git commit -am "<commit message>"
É uma única linha, mas dois comandos, e, como mencionado, você pode alternar os seguintes comandos:
alias git-aac="git add * && git commit -am " (o espaço no final é importante) porque você irá parametrizar o novo comando de mão curta.
A partir deste momento, você estará usando este alias:
git-acc "<commit message>"
Você basicamente diz:
git, adicione para mim todos os arquivos não rastreados e confirme-os com esta mensagem de confirmação.
Espero que você use o Linux, espero que isso ajude.
Você pode escrever um pequeno script (veja a resposta de Ian Clelland) chamado git-commitallque usa vários comandos git para executar o que você deseja fazer.
Coloque esse script em qualquer lugar do seu $PATH. Você pode chamá-lo por git commitall... muito útil!
Encontrado aqui (infelizmente, todas as perguntas e respostas foram excluídas, visíveis apenas com alta reputação)