Desejo mesclar dois ramos que foram separados por um tempo e queria saber quais arquivos foram modificados.
Encontrei este link: http://linux.yyz.us/git-howto.html, que foi bastante útil.
As ferramentas para comparar as ramificações que encontrei são:
git diff master..branch
git log master..branch
git shortlog master..branch
Estava pensando se há algo como "git status master..branch" para ver apenas os arquivos que são diferentes entre os dois ramos.
Sem criar uma nova ferramenta, acho que é o mais próximo que você pode fazer isso agora (o que obviamente mostrará repetições se um arquivo for modificado mais de uma vez):
git diff master..branch | grep "^diff"
Gostaria de saber se há algo que eu perdi ...
git
branch
git-branch
git-diff
johannix
fonte
fonte
Respostas:
Para comparar a ramificação atual com a
master
ramificação:Para comparar dois ramos:
Leia
git diff
a documentação oficial .fonte
git diff --name-status your_branch...master
saídas as mudanças que ocorreram no master desde your_branch foi criado a partir deleTentar
Isso fornecerá mais informações sobre cada alteração, enquanto você ainda usa o mesmo número de linhas.
Você também pode inverter os galhos para obter uma imagem ainda mais clara da diferença se quiser mesclar o outro caminho:
fonte
config --global color.ui true
), poderá pular a --color. (Eu tenho lks - síndrome teclado preguiçoso.)git config --global color.ui true
- estar completo.fatal: ambiguous argument 'master..branchName': unknown revision or path not in the working tree.
Lembre-se também de que o git tem ramificações baratas e fáceis. Se eu acho que uma mesclagem pode ser problemática, crio um ramo para a mesclagem. Portanto, se
master
tiver as alterações que desejo mesclar eba
for minha ramificação que precisa do código do mestre, devo fazer o seguinte:O resultado final é que eu tenho que experimentar a mesclagem em um galho descartável antes de ferrar com o meu galho. Se eu me enrolar, posso excluir o
ba-merge
ramo e começar de novo.fonte
master
enquanto você estiver trabalhando na revisão do código e na correção de conflitos.Se alguém estiver tentando gerar um arquivo diff a partir de dois ramos:
fonte
Há também um método baseado em GUI.
Você pode usar o gitk .
Corre:
Clique com o botão direito do mouse em uma confirmação de uma ramificação e selecione Marcar esta confirmação no menu pop-up.
Em seguida, haverá uma lista de arquivos alterados no painel inferior direito e detalhes de diferenças no painel inferior esquerdo.
fonte
Mais uma opção, usando meld neste caso:
Isso permite não apenas ver as diferenças entre os arquivos, mas também fornece uma maneira fácil de apontar e clicar em um arquivo específico.
fonte
-d
opção?Observe que o git facilita a tentativa de mesclar e se afastar de qualquer problema se você não gostar do resultado. Pode ser mais fácil do que procurar problemas em potencial com antecedência.
fonte
E se você estiver procurando alterações apenas entre certos arquivos, então:
branch1 é opcional e seu ramo atual (o ramo em que você está) será considerado por padrão se o ramo1 não for fornecido. por exemplo:
fonte
Ao trabalhar de forma colaborativa ou em vários recursos ao mesmo tempo, é comum que o upstream ou mesmo seu mestre contenham trabalho que não esteja incluído em sua filial e que apareçam incorretamente nas diferenças básicas.
Se seu Upstream pode ter sido movido, você deve fazer o seguinte:
Apenas o uso do git diff master pode incluir ou deixar de incluir alterações relevantes.
fonte
Se você estiver usando o IntelliJ IDEA , também poderá comparar qualquer ramificação com sua ramificação atual. Consulte http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827 para obter mais informações. Também está disponível na edição gratuita .
fonte
Existem dois ramos, digamos
Estar no ramo A, você pode digitar
então isso lhe dará uma saída de
O ponto importante sobre isso é
O texto em verde está presente no ramo A
O texto em vermelho está presente na ramificação B
fonte
Há muitas respostas aqui, mas eu queria adicionar algo que eu costumo usar. Se você estiver em um dos ramos que gostaria de comparar, normalmente faço o seguinte. Por essa resposta, diremos que estamos em nosso ramo secundário. Dependendo da visualização que você precisa no momento, depende da sua escolha, mas na maioria das vezes eu estou usando a segunda opção das duas. A primeira opção pode ser útil se você estiver tentando voltar para uma cópia original - de qualquer forma, ambos farão o trabalho!
Isso comparará o mestre com o ramo em que estamos (o qual é secundário) e o código original será as linhas adicionadas e o novo código será considerado as linhas removidas
OU
Isso também irá comparar o mestre com o ramo em que estamos (o qual é secundário) e o código original será as linhas antigas e o novo código serão as novas linhas
fonte
Se você estiver usando o Github / Github Enterprise, poderá usar a interface da Web da Web pressionando o URL
/compare
do caminho do repositório, por exemplo, https://github.com/http4s/http4s/compare . Você pode selecionar o branch / commit / tag que deseja comparar:E o diff será apresentado na interface do github no URL
/compare/{x1}...{x2}
onde estãox2
ex1
são o branch / commit / tag que você deseja comparar, por exemplo: https://github.com/http4s/http4s/compare/release-0.18.x ...mestreVocê pode ver mais no documento do Github .
fonte
Para as pessoas que procuram uma solução GUI, o Git Cola possui um "Visualizador de Diferenças de Filial ( Diff -> Ramos .. ) muito bom .
fonte
se
revision_n
erevision_m
são confirmações sucessivas, produz o mesmo quegit show revision_m
fonte
Você também pode usar um diff visual .
Por exemplo, se você estiver usando o Sourcetree , poderá simplesmente selecionar quaisquer duas confirmações na exibição de log .
(Pessoalmente, prefiro usar uma GUI na maioria dos casos para isso, e estou postando isso para aqueles que podem não estar familiarizados com as opções da GUI.)
fonte
Se você gosta da GUI e está usando o Windows, aqui está uma maneira fácil.
fonte
Você também pode comparar facilmente ramificações de arquivos alterados usando, por exemplo, o TortoiseGit . Basta clicar em Procurar referências e escolher os ramos que deseja comparar.
Por exemplo, se você comparar seu ramo com o mestre , obterá como resultado uma lista de arquivos que serão alterados no mestre se você decidir mesclar seu ramo no mestre .
Lembre-se de que você terá resultados diferentes se comparar o mestre com o seu ramo e o seu ramo com o mestre .
fonte