Ako dosiahnete, aby git diff
zobrazoval len rozdiel medzi dvoma revíziami, bez ostatných revízií medzi nimi?
Pýtať sa na rozdiel /medzi/ dvoma revíziami bez zahrnutia revízií medzi nimi nemá zmysel. Správy sú len snímky obsahu úložiska; otázka na rozdiel medzi dvoma správami ich nevyhnutne zahŕňa. Otázka teda znie, čo vlastne hľadáte?
Ako navrhol William, cherry-picking vám môže poskytnúť deltu jednej revízie založenej na inej. To znamená:
$ git checkout 012345
$ git cherry-pick -n abcdef
$ git diff --cached
Toto vezme revíziu 'abcdef', porovná ju s jej bezprostredným predkom a potom použije tento rozdiel na revíziu '012345'. Tento nový rozdiel sa potom zobrazí - jedinou zmenou je, že kontext pochádza z '012345' a nie z 'abcdef'bezprostredného predka. Samozrejme, môže dôjsť ku konfliktom a podobne, takže vo väčšine prípadov to'nie je veľmi užitočný postup.
Ak'vás zaujíma len samotný abcdef, môžete to urobiť:
$ git log -u -1 abcdef
Toto porovná abcdef len s jeho bezprostredným predkom a zvyčajne je to to, čo chcete.
A samozrejme
$ git diff 012345..abcdef
vám poskytne všetky rozdiely medzi týmito dvoma revíziami.
Pomohlo by to získať lepšiu predstavu o tom, čo sa snažíte dosiahnuť - ako som spomenul, žiadať rozdiel medzi dvoma revíziami bez toho, čo je medzi nimi, vlastne nemá zmysel.