Eu fiz git commit -m "message"
assim:
> git commit -m "save arezzo files"
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: arezzo.txt
# modified: arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")
Mas depois, quando eu mostro git status
, os mesmos arquivos modificados:
> git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: arezzo.txt
# modified: arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")
O que estou fazendo de errado?
git
version-control
git-commit
arezzo
fonte
fonte
git commit -am "save arezzo files"
para adicionar automaticamente todas as alterações (wrt .gitignore). Você pode querer adicionar apenas arquivos / diretórios específicos:git add file.src
Respostas:
Como a mensagem diz:
O Git tem uma "área de preparação" na qual os arquivos precisam ser adicionados antes de serem confirmados. Você pode ler uma explicação sobre isso aqui .
Para seu exemplo específico, você pode usar:
(observe o extra
a
nas bandeiras, também pode ser escrito comogit commit -a -m "message"
- ambos fazem a mesma coisa)Como alternativa, se você quiser ser mais seletivo sobre o que adicionar ao commit, use o comando git add para adicionar os arquivos apropriados à área de preparação e o status git para visualizar o que está prestes a ser adicionado (lembrando-se de prestar atenção ao a redação usada).
Você também pode encontrar documentação geral e tutoriais sobre como usar o git na página de documentação do git, que fornecerá mais detalhes sobre o conceito de preparação / adição de arquivos.
Outra coisa que vale a pena conhecer é o armazenamento temporário interativo - isso permite adicionar partes de um arquivo à área de armazenamento temporário, portanto, se você tiver feito três alterações de código distintas (para funcionalidade relacionada mas diferente), poderá usar o modo interativo para dividir o alterações e adicionar / confirmar cada parte por vez. Ter confirmações específicas menores como essa pode ser útil.
fonte
Você não adicionou as alterações. Adicione-os especificamente via
ou adicione todas as alterações (do caminho raiz do projeto)
ou use a abreviação
-a
ao confirmar:fonte
Você deveria fazer:
fonte
Copiei um pequeno subprojeto que estava sob controle de origem do Git em outro projeto e esqueci de excluir a pasta .git. Quando fui confirmar, recebi a mesma mensagem acima e não consegui limpá-la até excluir a
.git
pasta.É um pouco bobo, mas vale a pena verificar se você não tem uma pasta .git na pasta que não confirma.
fonte
Você poderia ter feito:
Para verificar quais arquivos você modificou e que serão adicionados (execução a seco: -n opção) e, em seguida,
Para adicionar apenas arquivos modificados
fonte
Acho que esse problema aparece quando fiz um
git add .
subdiretório abaixo do local onde meu.gitignore
arquivo está (o diretório inicial do meu repositório, por assim dizer). Tente alterar os diretórios para o diretório mais alto e execute,git add .
seguido porgit commit -m "my commit message"
.fonte
Talvez uma coisa óbvia, mas ...
Se você tiver problemas com o índice, use git-gui . Você obtém uma visão muito boa de como o índice (área de preparação) realmente funciona.
Outra fonte de informação que me ajudou a entender o índice foi Scott Chacons "Getting Git" página 259 e adiante.
Comecei usando a linha de comando, porque a maioria da documentação mostrava apenas que ...
Eu acho que o git-gui e o gitk realmente me fazem trabalhar mais rápido, e me livrei de maus hábitos como "git pull", por exemplo ... Agora eu sempre busco primeiro ... Veja o que realmente são as novas mudanças antes de me fundir.
fonte
A razão pela qual isso está acontecendo é porque você tem uma pasta que já está sendo rastreada pelo Git dentro de outra pasta que também é rastreada pelo Git. Por exemplo, eu tinha um projeto e adicionei uma subpasta. Ambos estavam sendo rastreados pelo Git antes de eu colocar um dentro do outro. Para parar de rastrear o interior, localize-o e remova o arquivo Git com:
No meu caso, eu tinha um aplicativo WordPress e a pasta que adicionei foi um tema. Então eu tive que ir para a raiz do tema e remover o arquivo Git, para que todo o projeto agora fosse rastreado pelo pai, o aplicativo WordPress.
fonte
se você tiver mais arquivos no meu caso, tenho 7000 arquivos de imagem quando tento adicioná-los da pasta de rota do projeto, eles não foram adicionados, mas quando vou para a pasta de imagens, tudo está bem. Percorra a pasta de destino e comande como abaixo
fonte
Eu tive um problema em que estava fazendo,
commit --amend
mesmo depois de emitir umgit add .
e ainda não estava funcionando. Acontece que fiz algumas.vimrc
personalizações e meu editor não estava funcionando corretamente. Avim
correção desses erros para que retorne o código correto resolveu o problema.fonte
Eu tive um problema muito semelhante com a mesma mensagem de erro. "Alterações não preparadas para confirmação", mas quando eu faço um diff, mostra diferenças. Finalmente descobri que, há algum tempo, havia mudado um caso de diretório. ex. "PostgeSQL" para "postgresql". Pelo que me lembro agora, às vezes o git deixa um arquivo ou dois para trás no diretório de casos antigos. Então você confirmará uma nova versão para o novo caso.
Assim, o git não sabe em quem confiar. Então, para resolvê-lo, tive que acessar o site do github. Então você poderá visualizar os dois casos. E você deve excluir todos os arquivos no diretório incorreto. Certifique-se de ter a versão correta salva ou no diretório fornecido correto.
Depois de excluir todos os arquivos do diretório antigo, esse diretório inteiro desaparecerá. Então faça um commit.
Nesse ponto, você deve poder executar um Pull no computador local e não ver mais os conflitos. Sendo assim, capaz de se comprometer novamente. :)
fonte
se você tiver uma subpasta que foi clonada de outro repositório git, primeiro você deverá remover o arquivo $ .git $ do repositório filho:
rm -rf .git
depois disso, você poderá mudar para a pasta pai e usargit add -A
.fonte