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 lokale feature en er slechts één afstandsbediening is met de feature .

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.

bron

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>


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