Percebi que, enquanto trabalhava em um ou dois ingressos, se eu me afastar, não sei ao certo o que trabalhei, o que mudou, etc.
Existe uma maneira de ver as alterações feitas em um determinado arquivo antes do git add e do git commit?
Percebi que, enquanto trabalhava em um ou dois ingressos, se eu me afastar, não sei ao certo o que trabalhei, o que mudou, etc.
Existe uma maneira de ver as alterações feitas em um determinado arquivo antes do git add e do git commit?
Respostas:
Você está procurando git diff. Dependendo da sua situação exata, existem três maneiras úteis de usá-lo:
# show differences between index and working tree
# that is, changes you haven't staged to commit
git diff [filename]
# show differences between current commit and index
# that is, what you're about to commit
# --staged does exactly the same thing, use what you like
git diff --cached [filename]
# show differences between current commit and working tree
git diff HEAD [filename]
Funcionará recursivamente nos diretórios e, se nenhum caminho for especificado, todas as alterações serão exibidas.
git add -pé uma alternativa para inspecionar todos os arquivos.
git diff --staged [filename]sua resposta principal, pois essa é uma situação mais frequentemente necessária.
Use git-diff:
git diff yourfile
Para mim, git add -pé a maneira mais útil (e pretendo que os desenvolvedores do git pensem?) Revisar todas as alterações não-estágios (mostra o diff para cada arquivo), escolher um bom conjunto de alterações que devem ser acompanhadas por um commit e, em seguida, quando você tiver encenou tudo isso, use git commite repita para o próximo commit. Em seguida, você pode fazer com que cada confirmação seja um conjunto de alterações úteis ou significativas, mesmo que elas ocorram em vários arquivos. Eu também sugeriria criar uma nova ramificação para cada ticket ou atividade semelhante e alternar entre eles usando checkout(talvez usando git stashse você não deseja confirmar antes de mudar), embora se você estiver fazendo muitas alterações rápidas, isso pode ser uma dor. Não se esqueça de mesclar com frequência.
Mostrar alterações entre a árvore de trabalho e o índice ou uma árvore, alterações entre o índice e uma árvore, alterações entre duas árvores ou alterações entre dois arquivos no disco.
Lembre-se, você está cometendo alterações , não arquivos.
Por esse motivo, é muito raro não usar git add -p(ou o equivalente do magit) para adicionar minhas alterações.
git diff <path>/filename
path pode ser o caminho completo do sistema até o arquivo ou,
se você estiver no projeto, cole o caminho do arquivo modificado também
para arquivos modificados com o uso de path:git status
Bem, meu caso quando você não quer se importar com a lista de arquivos. Apenas mostre a todos.
Quando você já correu git add sua lista de arquivos:
$ git diff --cached $(git diff --cached --name-only)
Nas versões mais recentes do git , você pode usar --stagedtambém, que é um sinônimo --cached.
O mesmo pode ser usado para não adicionar arquivos, mas sem --cached opção.
$ git diff $(git diff --name-only)
Alias do comando Git para a opção "em cache":
$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'
Vá para seu respectivo repositório git e execute o comando abaixo:
nome do arquivo diff
Ele abrirá o arquivo com as alterações marcadas, pressione a tecla Enter / Enter para rolar o arquivo para baixo.
O nome do arquivo PS deve incluir o caminho completo do arquivo, ou você pode executar sem o caminho completo, indo no respectivo diretório / pasta do arquivo
Você também pode usar um editor de texto compatível com o git. Eles mostram cores nas linhas que foram modificadas, outra cor para linhas adicionadas, outra cor para linhas excluídas etc.
Um bom editor de texto que faz isso é o Atom 1.0 do GitHub .
[filename]indicam um argumento opcional.) Com*você deixando o shell listar todos os arquivos, se estiver em um subdiretório, você só obterá coisas nesse subdiretório (não todo o repositório) e você ' Perderá alterações nos arquivos ocultos.