Git
vertakking
Zoeken…
Syntaxis
-
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
-
git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
-
git branch --unset-upstream [<branchname>]
-
git branch (-m | -M) [<oldbranch>] <newbranch>
-
git branch (-d | -D) [-r] <branchname>…
-
git branch --edit-description [<branchname>]
-
git branch [--color[=<when>] | --no-color] [-r | -a] [--list] [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>] [--points-at <object>] [<pattern>…]
parameters
Parameter | Details |
---|---|
-d, - verwijderen | Verwijder een tak. De tak moet volledig worden samengevoegd in zijn stroomopwaartse tak, of in HEAD als er geen stroomopwaarts was ingesteld met --track of --set-upstream |
-D | Snelkoppeling voor --delete --force |
-m, --move | Verplaats / hernoem een tak en de bijbehorende reflog |
-M | Snelkoppeling voor --move --force |
-r, --afstandsbedieningen | Lijst of verwijder (indien gebruikt met -d) de takken voor volgen op afstand |
-a, --alles | Lijst met beide filialen op afstand en lokale filialen |
--lijst | Activeer de lijstmodus. git branch <pattern> zou proberen een branch te maken, gebruik git branch --list <pattern> om overeenkomende branches weer te geven |
--set-upstream | Als de opgegeven branch nog niet bestaat of als --force is gegeven, werkt het precies als --track . Anders wordt een configuratie ingesteld zoals --track bij het maken van de vertakking, behalve dat waar vertakking naar verwijst niet wordt gewijzigd |
Opmerkingen
Elke git-repository heeft een of meer branches . Een branch is een benoemde verwijzing naar het HEAD
van een reeks commits.
Een git repo heeft een huidige branch (aangegeven met een *
in de lijst met branchnamen die worden afgedrukt door de opdracht git branch
), wanneer je een nieuwe commit maakt met de opdracht git commit
, wordt je nieuwe commit het HEAD
van de huidige branch, en de vorige HEAD wordt de ouder van de nieuwe commit.
Een nieuwe branch zal dezelfde HEAD
als de branch waaruit deze is gemaakt totdat er iets is vastgelegd voor de nieuwe branch.
Lijst met takken
Git biedt meerdere opdrachten voor het weergeven van vertakkingen. Alle commando's gebruiken de functie van git branch
, die een lijst van bepaalde branches zal geven, afhankelijk van welke opties op de opdrachtregel worden gezet. Git zal, indien mogelijk, de momenteel geselecteerde tak aangeven met een ster ernaast.
Doel | Commando |
---|---|
Lijst lokale vestigingen | git branch |
Lijst lokale vestigingen uitgebreid | git branch -v |
Lijst met externe en lokale vestigingen | git branch -a OF git branch --all |
Lijst met externe en lokale filialen (uitgebreid) | git branch -av |
Lijst met externe filialen | git branch -r |
Lijst met externe filialen met de nieuwste commit | git branch -rv |
Lijst samengevoegde takken | git branch --merged |
Lijst niet samengevoegde takken | git branch --no-merged |
Lijst met takken die commit bevatten | git branch --contains [<commit>] |
Opmerkingen :
- Als u een extra
v
$ git branch -avv
aan-v
bijvoorbeeld$ git branch -avv
of$ git branch -vv
wordt ook de naam van de stroomopwaartse branch afgedrukt. - Takken in rode kleur zijn afgelegen takken
Nieuwe filialen maken en uitchecken
Om een nieuwe branch te maken, terwijl je in de huidige branch blijft, gebruik je:
git branch <name>
Over het algemeen mag de filiaalnaam geen spaties bevatten en is deze onderworpen aan andere specificaties die hier worden vermeld. Om over te schakelen naar een bestaande tak:
git checkout <name>
Om een nieuwe branch te maken en er naar over te schakelen:
git checkout -b <name>
Gebruik een van deze opdrachten om een branch op een ander punt te maken dan de laatste commit van de huidige branch (ook bekend als HEAD):
git branch <name> [<start-point>]
git checkout -b <name> [<start-point>]
Het <start-point>
kan elke revisie zijn waarvan bekend is dat deze is git (bijv. Een andere filiaalnaam, commit SHA of een symbolische referentie zoals HEAD of een tagnaam):
git checkout -b <name> some_other_branch
git checkout -b <name> af295
git checkout -b <name> HEAD~5
git checkout -b <name> v1.0.5
Om een branch te maken van een remote branch (de standaard <remote_name>
is origin):
git branch <name> <remote_name>/<branch_name>
git checkout -b <name> <remote_name>/<branch_name>
Als een bepaalde filiaalnaam slechts op één afstandsbediening wordt gevonden, kunt u eenvoudig gebruiken
git checkout -b <branch_name>
wat gelijk is aan
git checkout -b <branch_name> <remote_name>/<branch_name>
Soms moet je misschien meerdere van je recente commits naar een nieuwe branch verplaatsen. Dit kan worden bereikt door als volgt te vertakken en "terug te rollen":
git branch <new_name>
git reset --hard HEAD~2 # Go back 2 commits, you will lose uncommitted work.
git checkout <new_name>
Hier is een illustratieve uitleg van deze techniek:
Initial state After git branch <new_name> After git reset --hard HEAD~2
newBranch newBranch
↓ ↓
A-B-C-D-E (HEAD) A-B-C-D-E (HEAD) A-B-C-D-E (HEAD)
↑ ↑ ↑
master master master
Verwijder een filiaal lokaal
$ git branch -d dev
Verwijdert de branch genaamd dev
als zijn wijzigingen zijn samengevoegd met een andere branch en niet verloren gaan. Als de dev
branch wel nog wijzigingen bevat die nog niet zijn samengevoegd die verloren zouden gaan, zal git branch -d
mislukken:
$ git branch -d dev
error: The branch 'dev' is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev'.
Volgens het waarschuwingsbericht kunt u de branch geforceerd verwijderen (en alle niet-samengevoegde wijzigingen in die branch verliezen) met behulp van de vlag -D
:
$ git branch -D dev
Bekijk een nieuwe vestiging die een vestiging op afstand volgt
Er zijn drie manieren om een nieuwe tak feature
die de remote branch circuits origin/feature
:
-
git checkout --track -b feature origin/feature
, -
git checkout -t origin/feature
, -
git checkout feature
- ervan uitgaande dat er geen lokalefeature
en er slechts één afstandsbediening is met defeature
.
Typ upstream om de remote branch te volgen:
-
git branch --set-upstream-to=<remote>/<branch> <branch>
-
git branch -u <remote>/<branch> <branch>
waar:
-
<remote>
kan zijn:origin
,develop
of degene gemaakt door gebruiker, -
<branch>
is de vertakking van de gebruiker om op afstand te volgen.
Om te controleren welke externe filialen uw lokale filialen volgen:
-
git branch -vv
Hernoem een tak
Wijzig de naam van de branch die je hebt uitgecheckt:
git branch -m new_branch_name
Hernoem een andere tak:
git branch -m branch_you_want_to_rename new_branch_name
Overschrijf een enkel bestand in de huidige werkmap met hetzelfde uit een andere branch
Het uitgecheckte bestand overschrijft nog niet vastgelegde wijzigingen die u in dit bestand hebt aangebracht.
Met deze opdracht wordt het bestand file.example
(dat zich in het file.example
path/to/
) file.example
en worden eventuele wijzigingen in dit bestand overschreven .
git checkout some-branch path/to/file
some-branch
kan alles zijn wat tree-ish
bekend is dat het git (zie Revisieselectie en gitrevisions voor meer details)
U moet toevoegen --
vóór het pad als uw bestand kan worden aangezien voor een bestand (anders optioneel). Na de --
kunnen geen opties meer worden geleverd.
git checkout some-branch -- some-file
Het tweede some-file
is een bestand in dit voorbeeld.
Verwijder een externe tak
Om een branch uit de origin
externe repository te verwijderen, kun je Git versie 1.5.0 en nieuwer gebruiken
git push origin :<branchName>
en vanaf Git versie 1.7.0 kun je een remote branch verwijderen met
git push origin --delete <branchName>
Een lokale tak voor extern volgen verwijderen:
git branch --delete --remotes <remote>/<branch>
git branch -dr <remote>/<branch> # Shorter
git fetch <remote> --prune # Delete multiple obsolete tracking branches
git fetch <remote> -p # Shorter
Om een filiaal lokaal te verwijderen. Merk op dat dit de branch niet zal verwijderen als het niet-samengevoegde wijzigingen heeft:
git branch -d <branchName>
Om een tak te verwijderen, zelfs als deze niet-samengevoegde wijzigingen heeft:
git branch -D <branchName>
Maak een wees branch (dwz branch zonder parent commit)
git checkout --orphan new-orphan-branch
De eerste commit op deze nieuwe branch zal geen ouders hebben en het zal de wortel zijn van een nieuwe geschiedenis die volledig losgekoppeld is van alle andere branches en commits.
Duw tak naar afstandsbediening
Gebruik om commits die op uw lokale branch zijn gemaakt naar een externe repository te pushen.
Het git push
commando heeft twee argumenten:
- Een externe naam, bijvoorbeeld
origin
- Een filiaalnaam, bijvoorbeeld
master
Bijvoorbeeld:
git push <REMOTENAME> <BRANCHNAME>
Als een voorbeeld, voer je meestal git push origin master
uit om je lokale wijzigingen naar je online repository te pushen.
Met -u
( --set-upstream
van --set-upstream
) wordt de trackinginformatie tijdens de push ingesteld.
git push -u <REMOTENAME> <BRANCHNAME>
Standaard pusht git
de lokale branch naar een remote branch met dezelfde naam. Als u bijvoorbeeld een lokale functie met de new-feature
, en u duwt op de lokale vertakking, maakt deze ook een new-feature
externe vertakking. Als u wilt een andere naam gebruiken voor de remote branch, voeg de externe naam na de lokale afdeling naam, gescheiden door :
:
git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME>
Verplaats huidige branch HEAD naar een willekeurige commit
Een branch is slechts een pointer naar een commit, dus je kunt hem vrij verplaatsen. Om ervoor te zorgen dat de branch verwijst naar de commit aabbcc
, geeft u de opdracht op
git reset --hard aabbcc
Merk op dat dit de huidige commit van je branch zal overschrijven, en als zodanig de hele geschiedenis. U kunt wat werk verliezen door dit commando te geven. Als dat het geval is, kun je de reflog gebruiken om de verloren commits te herstellen. Het kan worden geadviseerd om deze opdracht uit te voeren op een nieuwe branch in plaats van uw huidige branch.
Deze opdracht kan echter met name handig zijn bij het rebasen of bij het uitvoeren van dergelijke andere grote geschiedenisaanpassingen.
Snel schakelen naar de vorige tak
U kunt snel overschakelen naar de vorige tak met
git checkout -
Zoeken in takken
Om lokale filialen weer te geven die een specifieke commit of tag bevatten
git branch --contains <commit>
Om lokale en externe branches weer te geven die een specifieke commit of tag bevatten
git branch -a --contains <commit>