Git create branch van huidige uitgecheckte master?

Er is een door git gecontroleerde map op een server waar de hoofdbranch is uitgecheckt en een hele stapel bestanden is gewijzigd en niet vastgelegd. Is er een manier waarop ik de wijzigingen in een aparte branch kan vastleggen, zodat ik terug kan naar een schone versie?

dwz ik wil de wijzigingen van al deze personen effectief ongedaan maken, maar ze opslaan in een andere kans, zodat als die persoon hun wijzigingen wil, ze naar die branch kunnen overschakelen.

(Ja, ik weet dat dit niet is hoe git is ontworpen om te werken, maar dat is mijn situatie!) Alle ideeën worden zeer op prijs gesteld.


Antwoord 1, autoriteit 100%

Allereerst wordt het verplaatsen naar een andere vertakking in de huidige HEAD als volgt uitgevoerd:

git checkout -b newbranch

Voeg alle wijzigingen door (ervan uitgaande dat er geen nieuw toegevoegde bestanden zijn, anders git addze):

git commit -a

Ga terug naar de master-branch:

git checkout master

De eerder niet-gecommitteerde wijzigingen zullen allemaal in de newbranch-branch zijn en de master zal nog steeds in de staat zijn waarin deze was zonder die wijzigingen.


Antwoord 2, autoriteit 9%

U kunt uw wijzigingen altijd opbergen.

git stash
git checkout -b bravenewmaster
git stash apply

Houd er ook rekening mee dat als je je commit aan de “verkeerde” branch, je die branch altijd terug kunt verplaatsen, omdat branch niets anders is dan een verwijzing naar een commit.


Antwoord 3, autoriteit 9%

Deze methode is handig:

git checkout -B <new_branch> <start point>

Waar:

  • <new_branch>is je nieuwe branch (bijv. my_branch)
  • <start point>is je startbranch (masterin jouw geval)
  • -Bmaakt een nieuwe branch aan vanaf <start point>, als deze al bestaat, reset deze dan naar (het zal niet mislukken als -bals de vertakking al bestaat)
  • soms kan -mhandig zijn om te specificeren bij het wisselen van branches, dit zal een driewegsamenvoeging uitvoeren tussen de huidige branch, je werkboominhoud (handig voor scripting).

Zie: man git-checkoutvoor meer details.

Other episodes