Vraag Weergeven welke bestanden tussen twee revisies zijn gewijzigd


Ik wil twee takken samenvoegen die al een tijdje van elkaar zijn gescheiden en wilden weten welke bestanden zijn gewijzigd.

Kwam over deze link: http://linux.yyz.us/git-howto.html wat best handig was.

De tools om branches te vergelijken die ik ben tegengekomen zijn:

  • git diff master..branch
  • git log master..branch
  • git shortlog master..branch

Vraagt ​​zich af of er iets is als "git status master..branch" om alleen die bestanden te zien die verschillen tussen de twee branches.

Zonder een nieuwe tool te maken, denk ik dat dit het dichtst in de buurt komt om dat nu te doen (wat natuurlijk herhalingen zal laten zien als een bestand meer dan eens is gewijzigd):

  • git diff master..branch | grep "^diff"

Ik vroeg me af of ik iets heb gemist ...


1787
2018-05-05 00:47


oorsprong


antwoorden:


Om de huidige tak te vergelijken met master

$ git diff --name-status master

Om elk paar takken te vergelijken

$ git diff --name-status firstbranch..yourBranchName

Dat zou moeten doen wat je nodig hebt, als ik je goed begrijp.


2184
2018-05-05 01:04



Proberen

$ git diff --stat --color master..branchName

Dit geeft u meer informatie over elke wijziging, terwijl u nog steeds hetzelfde aantal regels gebruikt.

Je kunt ook de takken omdraaien om een ​​nog duidelijker beeld te krijgen van het verschil als je de andere kant op zou gaan:

$ git diff --stat --color branchName..master

354
2018-02-09 19:38



Houd er ook rekening mee dat git goedkope en gemakkelijke vertakkingen heeft. Als ik denk dat een fusie problematisch kan zijn, maak ik een branch voor de fusie. Dus als master heeft de wijzigingen die ik wil samenvoegen in en ba is mijn branch die de code van meester nodig heeft Ik zou het volgende kunnen doen:

git checkout ba
git checkout -b ba-merge
git merge master
.... review new code and fix conflicts....
git commit
git checkout ba
git merge ba-merge
git branch -d ba-merge
git merge master

Het eindresultaat is dat ik de fusie op een wegwerptak mag uitproberen voordat ik met mijn tak ruzie maak. Als ik me in de war raak, kan ik gewoon de ba-merge aftakking en begin opnieuw.


145
2017-10-11 01:22



Als iemand een diff-bestand probeert te genereren vanuit twee takken:

git diff master..otherbranch > myDiffFile.diff

44
2018-04-03 14:01



Merk op dat git het gemakkelijk maakt om gewoon de samenvoeging uit te proberen en terug weg van eventuele problemen als het resultaat u niet bevalt. Het is misschien makkelijker dan op voorhand potentiële problemen te zoeken.


30
2018-05-05 00:59



Er is ook een GUI-gebaseerde methode.

Je kunt gebruiken gitk.

  1. Rennen:

    $ gitk --all
    
  2. Klik met de rechtermuisknop op een commit van een filiaal en selecteer Markeer deze commit in het pop-upmenu.

  3. Klik met de rechtermuisknop op een commit van een andere branch en selecteer Diff dit -> gemarkeerde commit of Diff marked commit -> dit.

Daarna verschijnt er een lijst met gewijzigde bestanden in het rechter onderste paneel en diff-details in het linker onderste paneel.


29
2018-06-14 06:01



Nog een optie, met meld in dit geval:

git difftool -d master otherbranch

Dit laat niet alleen toe om de verschillen tussen bestanden te zien, maar biedt ook een eenvoudige manier om in een specifiek bestand te wijzen en erop te klikken.


26
2018-04-24 13:23



Wanneer u samenwerkt of meerdere functies tegelijkertijd gebruikt, is het gebruikelijk dat de upstream of zelfs uw master werk bevat dat niet is opgenomen in uw branche en dat onjuist wordt weergegeven in standaardversies.

Als uw upstream mogelijk is verplaatst, moet u dit doen:

git fetch
git diff origin/master...

Alleen het gebruik van git-diff-master kan relevante wijzigingen omvatten of niet bevatten.


14
2018-03-24 03:21



En als u alleen tussen bepaalde bestanden zoekt naar wijzigingen, dan:

git diff branch1 branch2 -- myfile1.js myfile2.js

branch1 is optioneel en uw huidige branch (de branch waar u zich bevindt) zal standaard worden beschouwd als branch1 niet is opgegeven. bijv:

git diff master -- controller/index.js

10
2018-05-16 13:13



Als je gebruikt IntelliJ IDEA, u kunt elke branche ook vergelijken met uw huidige werktak. Zien http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827 voor meer informatie. Dit is beschikbaar in de gratis editie ook.


9
2018-06-06 07:17