[Git] Specifieke commits alleen lokaal gebruiken

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Egocentrix
  • Registratie: Januari 2011
  • Laatst online: 05-05 20:07

Egocentrix

Parttime zeurkous

Topicstarter
Voor een hobbyproject loop ik tegen een Git-uitdaging aan waarvan ik hoop dat jullie mij een zetje in de goede richting kunnen geven.

De situatie: ik wil een Foobar2000-plugin (deze) proberen uit te breiden naar mijn eigen wensen. Ik heb dus die repository gecloned en een paar aanpassingen moeten doen om te zorgen dat ik zijn code kon compilen. Specifiek is het .vcproj-bestand bijgewerkt naar de nieuwe versie van Visual Studio en heb ik wat filepaths naar headers aan moeten passen omdat mijn libraries ergens anders staan dan bij hem. Deze wijzigingen heb ik in een aparte branch gedaan (even 'compilable' genoemd).

Daarna ben ik in een feature-branch aan nieuwe functies gaan werken. Wanneer ik die wil compilen doe ik een tijdelijke merge met 'compilable' die ik daarna abort.

Dit is echter onhandig omdat zonder de compilable aanpassingen intellisense ook niet werkt. Daarom heb ik de laatste keer de merge gewoon laten staan.

Nu het probleem: Ik wil straks mijn nieuwe feature aanbieden bij de maker van de originele plug-in. Dat wil zeggen: al mijn commits, maar zonder compilable. Ik weet alleen niet wat de handigste methode daarvoor is. Ik heb de volgende twee opties bedacht.

- Als mijn feature af is de compilable-aanpassingen eruit halen door de merge (dan al een paar commits terug) te reverten. Dan moet ik die opnieuw mergen als ik verder wil werken.

- Met een rebase -i of cherrypick al mijn commits (behalve compilable) rebasen op origin/master. Ook dat moet ongedaan gemaakt worden als ik iets wil aanpassen.

Zijn dit goede opties of is er nog iets anders wat ik kan proberen? Of moet ik juist op een hele andere manier omgaan met de 'compilable'-aanpassingen?

Ik gebruik Visual Studio 2015 Community samen met de officiële Git-for-Windows build (en de meest recente Foobar-SDK, maar dat is niet zo relevant hier geloof ik).

The above message has been encrypted using a quadruple ROT13-algorithm. --- Bad grammar makes me sic.

Beste antwoord (via Egocentrix op 04-10-2016 14:44)


  • Bigs
  • Registratie: Mei 2000
  • Niet online
Ik zou een kopie van de branch maken en dan inderdaad rebase -i op master zonder je compilable commits.

Alle reacties


Acties:
  • +1 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Je kan gewoon de ene branch (compilable) lokaal/privé houden en de andere publishen

[ Voor 3% gewijzigd door DJMaze op 04-10-2016 13:10 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Ik zou een kopie van de branch maken en dan inderdaad rebase -i op master zonder je compilable commits.

Acties:
  • 0 Henk 'm!

  • Egocentrix
  • Registratie: Januari 2011
  • Laatst online: 05-05 20:07

Egocentrix

Parttime zeurkous

Topicstarter
Ik had inderdaad niet door dat je met rebase een kopie maakt, dus dat het prima mogelijk is om de originele branch te behouden en ondertussen dezelfde commits ergens anders te gebruiken. Dank allebei!

The above message has been encrypted using a quadruple ROT13-algorithm. --- Bad grammar makes me sic.