Após um pull do Git, sua saída fornece um resumo do valor da alteração.
Como posso ver cada um ou alguns dos arquivos alterações detalhadas?
Ok, aqui está a minha pergunta para Jefromi:
Como sei se eu estava tentando dominar? Tudo o que fiz foi "git pull".
O que o master aponta e qual é a diferença entre master e HEAD, os dois chefes padrão do Git?
Como vejo a alteração detalhada em um arquivo específico?
Como vejo a alteração na saída do resumo pelos últimos
git pull
novamente?Qual a diferença entre
git diff
egit whatchanged
?
git diff
claramente um diff, enquanto mostra claramentegit whatchanged
uma lista de informações de confirmação, cada uma contendo uma lista de quais arquivos foram alterados.Respostas:
Suponha que você esteja tentando dominar. Você pode consultar a posição anterior de
master
bymaster@{1}
(ou mesmomaster@{10.minutes.ago}
; consulte a seção de especificação de revisões da página do manual git-rev-parse ), para que você possa fazer coisas comoVeja todas as alterações:
git diff master@{1} master
Veja as alterações em um determinado arquivo:
git diff master@{1} master <file>
Veja todas as alterações em um determinado diretório:
git diff master@{1} master <dir>
Consulte o resumo das alterações novamente:
git diff --stat master@{1} master
Quanto à sua pergunta "como sei se estou no mestre" ... bem, o uso de branches é uma parte importante do fluxo de trabalho do Git. Você deve sempre estar ciente de qual ramo você está - se você efetuou alterações, deseja obtê-las para o ramo certo! Você pode ver uma lista de todos os ramos, com um asterisco pela atualmente check-out um, com o comando
git branch
. O nome da filial atual também é impresso junto com a saída degit status
. Eu recomendo examinar as páginas de manual dos comandos a serem usados - é uma ótima maneira de adquirir lentamente algum conhecimento.E sua última pergunta:
HEAD
é o nome da ramificação com check-out atualmente. Você pode realmente usarHEAD
e tambémHEAD@{1}
neste contexto, mas é um pouco mais robusto usar os desvios, pois se você for verificar outro desvio.HEAD
agora é o segundo ramo eHEAD@{1}
agoramaster
- não é o que você deseja!Para evitar ter que fazer muitas pequenas perguntas como essa, você provavelmente deve dar uma olhada no tutorial do Git. Há um milhão na web, por exemplo:
fonte
git diff master@{1} master
caso contrário, a mudança é mostrada "para trás", ou seja, inserções se tornam deleções etc.git diff master@{1} master
não funcionou para mim, em vez disso,git diff master~1 master
fez o trabalho para mim.git reflog master
entender o que.fatal: ambiguous argument 'firstDesign@': unknown revision or path not in the working tree.
eu continuo recebendo esse erro. Embora o git reflog firstDesign tenha essa saída .Digamos que você faça um git como este:
Você pode ver a diferença do que mudou usando os números de revisão:
fonte
git diff --stat a407564..9f52bed
" ou para apenas um resumo "git diff --summary a407564..9f52bed
"O comando em si funciona assim:
e por padrão refere-se à ramificação atual. Você pode verificar suas filiais usando
Isso listará suas ramificações locais e remotas, como por exemplo (Adicionado um
---
divisor entre local e remoto para tornar mais claro)Quando você examinar um repositório remoto, verá a que se refere:
listará da seguinte maneira:
Portanto, é muito fácil ter certeza de onde puxar e pressionar.
A maneira mais fácil e elegante (imo) é:
Isso fornecerá dois blocos de informações sobre as alterações entre sua última solicitação e o estado atual do trabalho. Exemplo de saída (eu adicionei um
---
divisor entre--stat
e--dirstat
saída para torná-lo mais claro):fonte
Dessa forma, é meio hacky, mas permite que você use ferramentas gráficas como
gitk
ougitg
ougit-gui
:A resposta com a maioria dos votos positivos fornece a melhor maneira de usar a ferramenta git, mas eu uso esse método porque posso utilizar ferramentas com a GUI para ver as alterações: P
Eu teria então a etapa extra de fazer uma
git checkout .
e, em seguida,git pull
novamente, para poder puxar e mesclar adequadamente, mas valorizo a capacidade de examinar as diferenças em uma GUI o suficiente para lidar com as duas etapas extras.fonte