Existe alguma maneira de usar esses três comandos em um?
git add .
git commit -a -m "commit" (do not need commit message either)
git push
Às vezes, estou mudando apenas uma letra, preenchimento CSS ou algo assim. Ainda assim, tenho que escrever todos os três comandos para fazer as alterações. Existem muitos projetos em que sou apenas um empurrador, então esse comando seria incrível!
Respostas:
Aproveitando a resposta de @ Gavin:
Tornar o lazygit uma função em vez de um alias permite passar um argumento para ele. Adicionei o seguinte ao meu .bashrc (ou .bash_profile se Mac):
Isso permite que você forneça uma mensagem de confirmação, como
É claro que você poderia reforçar isso ainda mais, aceitando ainda mais argumentos, como em qual lugar remoto para onde empurrar ou em que ramo.
fonte
$*
vez de$1
salvar digitando as aspas:lazygit My commit msg
function dirtygit() { git add . git commit -a -m "$*" git push }
Acabei adicionando um alias ao meu
.gitconfig
arquivo:Uso:
git cmp "Long commit message goes here"
Adiciona todos os arquivos, depois usa o comentário para a mensagem de confirmação e a envia até a origem.
Eu acho que é uma solução melhor porque você tem controle sobre qual é a mensagem de confirmação.
O alias também pode ser definido na linha de comando; isso inclui o seu
.gitconfig
:fonte
!f() { ... }; f
faz exatamente? Mais explicações dessa linha tornariam a resposta ainda melhor.f
e depois a chama.git pull
ao início para que as mesclagens sejam reduzidas.Embora eu concorde com Wayne Werner sobre suas dúvidas, esta é tecnicamente uma opção:
Que define um alias que é executado
commit
epush
. Use-o comogit acp
. Esteja ciente de que esses aliases "shell" são sempre executados a partir da raiz do seu repositório git.Outra opção pode ser escrever um gancho pós-confirmação que faça o push.
Ah, a propósito, você realmente pode passar argumentos para aliases de shell. Se você deseja passar uma mensagem de confirmação personalizada, use:
(É claro que, agora, você terá que dar uma mensagem de commit:
git acp "My message goes here!"
)fonte
git
adicionadas automaticamente as escapes (marcadas comgit config -e
).Eu acho que você pode entender mal o fluxo de trabalho para o qual o git foi projetado. (Para esclarecer / corrigir o que eu quis dizer no comentário, você não precisa do
git add .
, poiscommit -a
geralmente serve para o mesmo objetivo - adicionar quaisquer alterações que ainda não tenham sido preparadas, se os arquivos já tiverem sido adicionados)Normalmente, você fará algo assim:
lave, enxágue, repita, até concluir o recurso X, ou estar em um ponto de parada ou desejar que outras pessoas vejam o que você fez. Então você faz
O Git não é SVN - mas parece que você está tentando usá-lo como tal. Você pode encontrar alguns dos recursos no final do artigo aqui de alguma utilidade.
fonte
git add .
egit commit -a
não são a mesma coisaEu uso isso no meu .bash_profile
Ele executa como
Não se esqueça de executar
source ~/.bash_profile
depois de salvar o alias.fonte
Você pode usar o script bash, definir alias para iniciar qualquer comando ou grupo de comandos
fonte
Defina como um alias no bash:
Chame-o:
(Para tornar esse alias permanente, você deve incluí-lo no seu .bashrc ou .bash_profile)
fonte
A solução mais simples seria:
git add
já está contido no parâmetro -a commit, mas se você quiser, pode conectar todos eles:fonte
No Linux / Mac, essa opção muito prática também deve funcionar
Se você estiver trabalhando em um nova ramificação criada localmente, altere o
git push
peça comgit push -u origin branch_name
Se você deseja editar sua mensagem de confirmação no editor do sistema,
abrirá o editor e, após salvar a mensagem, ela também será enviada.
fonte
Você pode tentar gitu .
Pela primeira vez (o nó js deve ser instalado):
Depois disso:
Para emitir esses três comandos ao mesmo tempo.
O bom é que você não precisa se preocupar quando reinstalar o sistema ou quando quiser fazer isso em computadores diferentes e nenhuma modificação de arquivo é necessária. Isso também funciona em plataformas diferentes (não apenas Linux e Mac, mas também no Windows sob prompt de comando como
cmd
epowershell
), apenas que você precisa instalarnpm
enodejs
(égit
claro).fonte
Se o arquivo já estiver sendo rastreado, você não precisará executar
git add
, basta escrevergit commit -am 'your message'
Se você não quiser escrever uma mensagem de confirmação, considere fazer algo como
git commit --allow-empty-message -am ''
fonte
Resultado - Tente o seguinte: Comando simples de script um para git add, git commit e git push
Abra seu CMD no Windows e cole esta resposta
git commit -m "your message" . && git push origin master
fonte
Conforme mencionado nesta resposta, você pode criar um alias do git e atribuir um conjunto de comandos para ele. Nesse caso, seria:
e use-o com
fonte
Escreva um pequeno script chamado gitpush.sh com as linhas abaixo e adicione-o ao seu diretório ~.
Agora adicione um alias em ~ / .bashrc como abaixo:
Agora, a partir de qualquer repositório git, escreva gitpush "message".
fonte
Eu uso um arquivo em lote:
fonte
Existem alguns problemas com os scripts acima:
shift "remove" o parâmetro $ 1, caso contrário, "push" irá lê-lo e "entendê-lo mal".
Minha dica:
fonte
Quando você quiser um comportamento semelhante ao svn do git commit, use isso nos aliases do git no seu .gitconfig
commit = "!f() { git commit \"$@\" && git push; };f"
fonte
Se você estiver usando casca de peixe (com base na resposta da btse):
Salve este arquivo em '~ / .config / fish / functions' como 'quickgit.fish'. Crie o diretório se ele não existir. '--git-dir = $ PWD / .git' Garante que executamos os comandos git no projeto git em que chamamos a função
Reinicie o terminal, navegue para o projeto, faça alterações e agora você pode chamar 'quickgit "example message"'. As alterações serão agora adicionadas, confirmadas e enviadas por push :).
Também pode ser encontrado como um Gist aqui: https://gist.github.com/Abushawish/3440a6087c212bd67ce1e93f8d283a69
fonte
Já existem muitas boas soluções, mas aqui está uma solução que acho mais elegante para a maneira como quero trabalhar:
Eu coloquei um script no meu caminho chamado "git-put" que contém:
Isso me permite executar:
..para adicionar todos os arquivos, enviá-los e enviá-los.
(Também adicionei o "-u" porque, de qualquer maneira, gosto de fazer isso, mesmo que não esteja relacionado a esse problema. Ele garante que o ramo upstream esteja sempre configurado para puxar.)
Eu gosto dessa abordagem porque ela também permite usar o "git put" sem adicionar todos os arquivos (pule o "-a") ou com outras opções que eu queira passar para confirmar. Além disso, "put" é um pequeno portmanteau de "push" e "commit"
fonte
Se você usa o VSCode, pode fazer o download desta extensão, que permitirá fazer isso em um simples atalho de teclado.
fonte
Se você estiver usando um Mac:
Inicie o Terminal Digite "cd ~ /" para ir para a sua pasta pessoal
Digite "touch .bash_profile" para criar seu novo arquivo.
Edite .bash_profile com seu editor favorito (ou você pode simplesmente digitar "open -e .bash_profile" para abri-lo no TextEdit).
Copie e cole o abaixo no arquivo:
Depois disso, reinicie o seu terminal e simplesmente adicione, confirme e pressione um comando fácil, por exemplo:
fonte
Para usuários do MAC VSC, a melhor configuração é:
1) pressione 'shift + cmd + P' e digite:
Pressione ENTER (isso instalará o comando de código para chegar facilmente ao bash_profile)
2) agora você pode executar:
code ~/.bash_profile
para abrir o bash_profile vazio3) insira uma nova função:
4) agora reinicie o VSC
5) faça uma alteração, salve-a e digite
lazygit message
para executar os três comandos simultaneamentefonte
Para os usuários do macOS:
Abra o seu Terminal ou iTerm2 ou outro terminal que você usa.
Mover para pasta de perfil de usuário com o comando
~/
. É uma pasta padrão para o.bash_profile
arquivo:Digite
nano .bash_profile
Este comando abrirá o.bash_profile
documento (ou o criará, se ele ainda não existir), da maneira mais fácil de usar o editor de texto para o terminal -nano
.Agora você pode fazer uma simples alteração no arquivo. Cole estas linhas de código para alterar o prompt do Terminal:
Agora salve suas alterações digitando
ctrl + o
e pressione Enter para salvar. Então saianano
digitandoctrl + x
.Agora precisamos ativar suas alterações. Digite
source .bash_profile
(ou. ~/.bash_profile
) e observe sua alteração imediata.No iTerm2,
Preferences/Profiles/General/Command
defina paraLogin Shell
eSend text at start
parasource ~/.bash_profile
. Portanto, você não precisa fazer isso manualmente após cada reinicialização do macOS.Credenciais: https://natelandau.com/my-mac-osx-bash_profile
fonte
Eu fiz este script .sh para comando
fonte
Como a pergunta não especifica qual shell, eis a versão eshell com base nas respostas anteriores. Isso acontece no arquivo eshell alias, que pode estar em ~ / .emacs.d / eshell / alias. Adicionei a primeira parte z https://github.com/rupa/z/, que permite que você faça um cd rapidamente em um diretório , para que isso possa ser executado, independentemente do diretório atual.
fonte
Adicione
~/.bash_profile
para adicionar, confirmar e pressionar com um comando:Uso:
Não são necessárias aspas, embora você não possa usar ponto-e-vírgula ou parênteses em suas mensagens de confirmação (aspas simples são permitidas). Se você quiser alguma dessas opções, basta colocar aspas duplas na sua mensagem, por exemplo:
Para criar um comentário em sua mensagem, faça:
Há também uma função para adicionar e confirmar de maneira semelhante:
Funciona exatamente da mesma maneira que
g
funciona e tem as mesmas restrições. Basta colocarc
em seu lugar. Por exemploVocê também pode adicionar um alias para enviar para o controle remoto:
Uso:
Isso equivale a 2 letras,
c
ep
você usa enquanto trabalha com seu repositório git. Ou você pode usarg
para fazer tudo com apenas uma letra.Lista completa de aliases e funções: https://gist.github.com/matt360/0c5765d6f0579a5aa74641bc47ae50ac
fonte
Com base na
lazygit
resposta, a solução a seguir adiciona uma verificação do usuário para verificar as alterações antes de enviar por push. Ele reverterá os comandos se cancelado. E tudo isso acontecerá se e somente se houver alterações no repositório local.fonte
Isso é perfeito para agrupamento de comandos.
Comandos de agrupamento
fonte
Eu gosto de executar o seguinte:
fonte
;
deve ser substituído por&&
seu comando, pois o posterior executará ogit push
comando somente se não houver erro no (s) comando (s) anterior (es).Achei esse
yolo
alias incrível mesmo enviar um comentário aleatório para o commit enquanto eu estava sendo preguiçoso. Funciona muito bem fora da caixa, então eu apenas façogit yolo
e todas as minhas alterações são enviadas automaticamente.fonte