Respostas:
Você deve colocar a mensagem de confirmação neste arquivo de texto, depois salvar e sair.
Você pode alterar o editor de texto padrão que o git usa com este comando:
git config --global core.editor "nano"
Você tem que mudar o nano para qualquer comando que normalmente abriria seu editor de texto.
--global
muda para o usuário atual e --system
muda para todos naquele computador.
Como mencionado por Ben Collins , sem o -m "..."
argumento para digitar o commit inline (o que geralmente é uma má ideia, pois incentiva você a ser breve), este "grande arquivo de texto" que é aberto é uma janela na qual digitar a mensagem de commit .
Normalmente, é recomendável escrever um resumo na primeira linha, pular uma linha e escrever notas mais detalhadas abaixo; isso ajuda os programas que fazem coisas como enviar por e-mail as mensagens de confirmação com uma linha de assunto apropriada e a lista completa de alterações feitas no corpo.
Em vez de alterar a EDITOR
variável shell, você também pode alterar o editor usado adicionando as linhas adicionais em seu ~/.gitconfig
arquivo:
[core]
editor = emacs
excludesfile = /Users/will/.gitignore
Essa segunda linha na verdade não tem nada a ver com o seu problema, mas acho que é muito útil para que eu possa preencher meu ~/.gitignore
arquivo com todos os tipos de arquivos que sei que nunca, jamais, irei enviar para um repositório.
O arquivo de texto que está sendo aberto é um resumo da operação de confirmação atual. O git commit coloca você neste arquivo para que você possa adicionar uma mensagem de commit no topo do arquivo. Depois de adicionar sua mensagem, salve e saia deste arquivo.
Há também uma opção "-m msg" neste comando que permite adicionar a mensagem de confirmação na linha de comando.
Se você estiver no Mac OS X e usando o BBEdit, poderá configurá-lo como o editor preferido para enviar mensagens:
git config --global core.editor "bbedit -w"
Depois de terminar a edição, salve e feche o arquivo e o git o usará para os comentários.
Assumindo que o padrão do seu editor é vi / vim, você pode sair do editor de mensagens de commit digitando:
:x
que salvará e sairá do arquivo de mensagem de confirmação. Em seguida, você voltará para a seção normal de comandos git.
Mais comandos vi:
http://www.lagmonster.org/docs/vi.html
esc
para entrar no modo de comando antes de digitar :x
para salvar e sair.
Como todos disseram, é apenas onde você adiciona seu comentário de confirmação - mas para alguns ainda pode ser confuso, esp se você não tiver configurado as configurações do editor e não estiver ciente de qual VI é : então você pode ficar em choque , porque você vai pensar que ainda está no GIT-Bash
Nesse caso, você está de fato em um editor de texto com algumas maneiras interessantes de lidar com as coisas e este conjunto de comandos pode ajudá-lo para que você possa passar de seu primeiro commit e então configurar um editor com o qual esteja familiarizado ou usá-lo como uma oportunidade de aprender como usá-lo.
A -m
opção de confirmação permite inserir uma mensagem de confirmação na linha de comando:
git commit -m "my first commit"
Quando você cria um novo commit, git abre um editor de texto e escreve algumas coisas nele.
Usando este editor de texto, a intenção é que você escreva a mensagem de commit que será associada ao seu commit criado gratuitamente.
Depois de fazer isso, salve e saia do editor de texto. O Git usará o que você escreveu como a mensagem de confirmação.
A mensagem de confirmação tem uma estrutura particular, descrita a seguir:
A primeira linha da mensagem de confirmação é usada como cabeçalho (ou título) da mensagem. O comprimento preferido do cabeçalho do commit é inferior a 40 caracteres, pois este é o número de caracteres que o github exibe na guia Commits de um determinado repositório antes de truncá-lo, o que algumas pessoas acham irritante.
Ao redigir o cabeçalho, usar um verbo no tempo presente em maiúscula para a primeira palavra é uma prática comum, embora não seja obrigatório.
Uma nova linha delineia o cabeçalho e o corpo da mensagem.
O corpo pode consistir no que você quiser. Uma visão geral das mudanças introduzidas por seu commit é razoável. Alguns aplicativos de terceiros usam informações que incluem o corpo de mensagens de confirmação para desencadear vários tipos de ganchos (estou pensando em Gerrit e Pivotal Tracker, para citar dois).
Aqui está um exemplo curto e doce. Uma liderança #
denota um comentário.
Gitignore index.pyc
Ignore gunicorn generated binary file
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch dev
# Your branch is ahead of 'origin/dev' by 10 commits.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: .gitignore
#
Aqui um Sr. Torvalds opina sobre o que torna um bom commit.
E aqui Tpope faz o mesmo.
Conforme declarado em várias outras respostas, alterar o editor padrão é uma linha na linha de comando.
Para minha preferência:
git config --global core.editor "vim"
Tente Escape e, em seguida, ZZ, após terminar de digitar sua mensagem. Como outros disseram, quando você executa o comando commit, ele executa um editor de texto para inserir a mensagem. No meu caso (OS X) foi VI, que descobri depois de algumas pesquisas. Nesse caso, pressione Escape para entrar no modo "comando" (em oposição ao modo INSERT) e digite ZZ. Tenho certeza de que existem outras maneiras de realizar a tarefa, mas isso funcionou para mim. Como nunca usei VI ou emacs, não foi imediatamente aparente para mim e não foi mencionado em nenhum dos guias para iniciantes que eu estava usando. Espero que isso ajude.
O git commit
comando abrirá o editor especificado na EDITOR
variável de ambiente para que você possa inserir um comentário de confirmação. Em um sistema Linux ou BSD, deve ser vi por padrão, embora qualquer editor deva funcionar.
Basta inserir seus comentários e salvar o arquivo.
Eu estava confuso porque ficava tentando inserir um nome de arquivo após: w no VIM. Isso não aciona o commit. Em vez disso, continuei recebendo uma mensagem "Abortando o commit devido à mensagem de commit vazia." Não coloque um nome de arquivo após: w. : w salva o arquivo em .git / COMMIT_EDITMSG por padrão. Então: q sair para completar o commit. Você pode ver os resultados com o git log.
Agora que mudei meu editor para emacs, tudo funciona bem.
Mas antes de definir isso, "git commit -a" abriu o gedit, mas também terminou imediatamente com "Abortando o commit devido à mensagem de commit vazia.". Salvar o arquivo do gedit não teve efeito. Definir explicitamente o editor com "git config --global core.editor" gedit "" teve o mesmo resultado.
Não há nada de errado com o emacs, mas por curiosidade, por que isso não funciona com o gedit e há alguma maneira de fazê-lo funcionar?
Obrigado.
git config --global core.editor "gedit -s"
Para aqueles que usam OS XI, este comando funciona bem:
git config --global core.editor "open -t -W"
o que forçará o git a abrir o editor de texto padrão (textedit no meu caso) e então esperar que você saia do aplicativo. Lembre-se de que você precisa "Salvar" e, em seguida, "Sair" por mensagem de texto antes que o commit seja concluído. Existem alguns outros comandos com os quais você pode brincar, conforme detalhado nesta página:
Biblioteca de desenvolvedores Apple - Comando aberto
Você também pode tentar git config --global core.editor "open -e -W"
se deseja que o git sempre abra o texto, independentemente de qual seja o editor padrão.
Sim, certifique-se de ter um conjunto de editores sensato. Não tenho certeza de qual será o seu editor padrão, mas se, como eu, for nano (dirá em algum lugar próximo ao topo depois de digitar commit), você só precisa digitar um comentário e pressionar Ctrl-x para terminar. Em seguida, pressione y, seguido de enter para confirmar o commit.
Além disso, se você quiser ver uma lista simples dos arquivos que irá enviar ao invés de uma lista enorme de diferenças, tente
git diff --name-only
Ao fazer o controle de revisão, você deve sempre explicar quais são as alterações feitas. Normalmente, a primeira vez que você tem um comentário como "Confirmação inicial".
No entanto, a longo prazo, você deseja fazer um bom comentário para cada commit. Você vai querer algo no formato:
Adicionado recurso experimental x.
X aumentará o desempenho do recurso Y na condição Z. Se você precisar do X, ative-o com as opções -x ou --feature-eks. Isso atende à solicitação de recurso nº 1138.
--global
para alterar o padrão?