Respostas:
Forneça um caminho (myfolder neste caso) e apenas execute:
git diff myfolder/
git diff -- myfolderpara minimizar a ambiguidade do git. A notação geral para git diff (e muitos comandos git) é git diff [commit-ish] -- [path]onde commit-ish assume como padrão HEAD (onde você está agora) e [path]assume como padrão o diretório raiz do git, mas pode ser qualquer coisa relativa ao diretório atual. Sem o --, o git vai adivinhar o que você quer dizer, [commit-ish]ou [path]. Em alguns casos, isso faz com que o git diga que a notação é 'ambígua'. Se eu me lembro bem.
git diff master..develop myfolder/como o @CrandellWS disse no comentário sobre a pergunta original. O status Git mostrará as alterações, se é isso que você está procurando.
Se você estiver comparando ramificações diferentes, precisará --separar uma revisão do Git de um caminho do sistema de arquivos. Por exemplo, com duas ramificações locais mastere bryan-working:
$ git diff master -- AFolderOfCode/ bryan-working -- AFolderOfCode/
Ou de uma filial local para um controle remoto:
$ git diff master -- AFolderOfCode/ origin/master -- AFolderOfCode/
Você deve criar o hábito de examinar a documentação para coisas assim. É muito útil e irá melhorar suas habilidades muito rapidamente. Aqui está a parte relevante quando você fazgit help diff
git diff [options] [--no-index] [--] <path> <path>
Os dois <path>s são o que você precisa alterar para os diretórios em questão.
Adicione Beyond Compare como seu difftool no Git e adicione um alias para diffdir como:
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"
Obtenha o gitdiff como:
git diffdir 4bc7ba80edf6 7f566710c7
Referência: Compare diretórios inteiros com git difftool + Além da comparação
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"vez
--no-symlinksopção para que o comando leiagit difftool --dir-diff --no-symlinks
Não apenas você pode adicionar um caminho, mas também pode adicionar git diff --relativepara obter um resultado relativo a essa pasta.
git -C a/folder diff --relative
E com o Git 2.28 (terceiro trimestre de 2020), os comandos da difffamília " " aprenderam a honrar a " diff.relative" variável de configuração.
Veja commit c28ded8 (22 de maio de 2020) por Laurent Arnoud ( spk) .
(Mesclado por Junio C Hamano - gitster- no commit e34df9a , 02 jun 2020)
diff: adicionar opção de configuraçãorelativeAssinada por: Laurent Arnoud
Acked-by: Đoàn Trần Công DanhA
diff.relativeopção booleana configurada paratruemostra apenas alterações no diretório / valor atual especificado pelopathargumento darelativeopção e mostra os nomes de caminho relativos ao diretório mencionado acima.Ensine
--no-relativea substituir anteriormente--relativeAdicione a documentação das opções git-format-patch (1)
--relativee--no-relative
diff.relative:Se definido como '
true', 'git diff' não mostra alterações fora do diretório e mostra nomes de caminho em relação ao diretório atual.
Se você deseja excluir os subdiretórios, pode usar
git diff <ref1>..<ref2> -- $(git diff <ref1>..<ref2> --name-only | grep -v /)
Para usar o Beyond Compare como o difftool para o diretório diff, lembre-se de ativar os links simbólicos da seguinte maneira:
Em uma pasta Compare View → Rules (Ícone do árbitro):
E, em seguida, ative os links simbólicos e atualize os padrões da sessão:
OU,
configure o alias da seguinte maneira:
git config --global alias.diffdir "difftool --dir-diff --tool=bc3 --no-prompt --no-symlinks"
Observe que, em ambos os casos, todas as edições feitas no lado (esquerda ou direita) que se referem à árvore de trabalho atual são preservadas.
git diff master..yourbranch path/to/folder