Zoeken…


Syntaxis

  • git merge another_branch [opties]
  • git samenvoegen - afbreken

parameters

Parameter Details
-m Bericht dat moet worden opgenomen in de merge-commit
-v Uitgebreide uitvoer weergeven
--abort Probeer alle bestanden terug te zetten naar hun staat
--ff-only Wordt onmiddellijk afgebroken wanneer een merge-commit nodig zou zijn
--no-ff Forceert het maken van een merge-commit, zelfs als het niet verplicht was
--no-commit Doet alsof de samenvoeging het inspecteren en tweaken van het resultaat niet toestond
--stat Toon een diffstat nadat het samenvoegen is voltooid
-n / --no-stat Laat de diffstat niet zien
--squash Staat een enkele commit toe op de huidige branch met de samengevoegde wijzigingen

Voeg een tak in een andere samen

git merge incomingBranch

Dit voegt de tak incomingBranch in de branche waarin u zich bevindt. Bijvoorbeeld, als u op dit moment in master , dan incomingBranch zullen worden samengevoegd tot master .

Samenvoegen kan in sommige gevallen conflicten veroorzaken. Als dit gebeurt, ziet u het bericht Automatic merge failed; fix conflicts and then commit the result. U moet de conflicterende bestanden handmatig bewerken of, om uw samenvoegpoging ongedaan te maken, uitvoeren:

git merge --abort

Automatisch samenvoegen

Wanneer de commits op twee branches niet conflicteren, kan Git ze automatisch samenvoegen:

~/Stack Overflow(branch:master) » git merge another_branch
Auto-merging file_a
Merge made by the 'recursive' strategy.
 file_a | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Een samenvoeging afbreken

Na het starten van een samenvoeging wilt u misschien de samenvoeging stoppen en alles terugbrengen naar de pre-samenvoegstatus. Gebruik --abort :

git merge --abort

Houd wijzigingen aan slechts één kant van een samenvoeging

Tijdens een merge, kunt u doorgeven --ours of --theirs om git checkout om alle wijzigingen voor een bestand van de ene of de andere kant van een fusie te nemen.

$ git checkout --ours   -- file1.txt # Use our version of file1, delete all their changes
$ git checkout --theirs -- file2.txt # Use their version of file2, delete all our changes

Samenvoegen met een commit

Standaardgedrag is wanneer de samenvoeging wordt opgelost als een fast-forward, alleen de branch pointer bijwerken, zonder een merge commit te maken. Gebruik --no-ff om op te lossen.

git merge <branch_name> --no-ff -m "<commit message>"

Alle takken vinden zonder samengevoegde wijzigingen

Soms heb je takken rondslingeren waarvan de wijzigingen al zijn samengevoegd tot master. Dit vindt alle branches die geen master die geen unieke commits hebben in vergelijking met master . Dit is erg handig voor het vinden van branches die niet zijn verwijderd nadat de PR was samengevoegd in master.

 for branch in $(git branch -r) ; do
   [ "${branch}" != "origin/master" ] && [ $(git diff master...${branch} | wc -l) -eq 0 ] && echo -e `git show --pretty=format:"%ci %cr" $branch | head -n 1`\\t$branch
 done | sort -r


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow