AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1631614
Accepted
AJP
AJP
Asked: 2021-03-08 14:28:51 +0800 CST2021-03-08 14:28:51 +0800 CST 2021-03-08 14:28:51 +0800 CST

Escape corretamente de um subcomando em um alias git

  • 772

Eu gostaria de alias o seguinte comando git:

git commit --amend -m $(git log --format=%B -n1)

No entanto, se eu adicionar o seguinte aos meus .gitconfigerros com "erro: opção desconhecida `format=%B'"

[alias]
  amend = commit --amend -m $(git log --format=%B -n1)

Existe uma maneira de ter este comando como um alias? Se eu colocar o subcomando entre aspas simples, ele o trata como uma string:

[alias]
  amend = commit --amend -m '$(git log --format=%B -n1)'

Executar isso usando git amendresulta no último commit sendo renomeado para o literal: $(git log --format=%B -n1).

git
  • 2 2 respostas
  • 517 Views

2 respostas

  • Voted
  1. Best Answer
    Kamil Maciorowski
    2021-03-09T06:38:28+08:002021-03-09T06:38:28+08:00

    Eu não sei quase nada sobre git, mas eu sei que $( )precisa de um shell que irá interpretá-lo. Os aliases git usuais são internos ao git, eles não executam nenhum shell. Para definir um alias git que executa um comando arbitrário, você precisa do !.

    Meus testes indicam que não preciso !sh -c …fazer gitrodar algo em um shell. Parece que o comando depois !é executado de shqualquer maneira. A nota em sh $( ) deve estar entre aspas duplas .

    Usa isto:

    [alias]
            amend = !git commit --amend -m \"$(git log --format=%B -n1)\"
    

    As aspas duplas são escapadas para que (o exterior) gitnão as use. Você precisa deles para o sh.

    • 1
  2. AJP
    2021-03-11T08:25:53+08:002021-03-11T08:25:53+08:00

    A resposta de @Kamil Maciorowski está correta, mas acabei de perceber que a funcionalidade que eu queria poderia ser alcançada executando:

    git commit --amend --no-edit
    

    Que pode ser facilmente alias usando:

    [alias]
      amend = commit --amend --no-edit
    
    • 0

relate perguntas

  • Windows 10: Não é possível abrir arquivos .ttf dentro de um (antigo) repositório Git

  • GitLab: você não pode enviar commits para arquivos . Você só pode enviar commits que foram confirmados com um de seus próprios e-mails verificados

  • Altere o nome da ramificação padrão do git init

  • adicionar git. comando não funciona

  • Recuperar arquivo excluído do git após o commit

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve