You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Alhoewel `DbConnector` een subdirectory is in je werk directory, zie Git het als een submodule en zal de inhoud ervan niet tracken als je niet in die directory staat.
98
+
Alhoewel `DbConnector` een subdirectory is in je werk directory, ziet Git het als een submodule en zal de inhoud ervan niet tracken als je niet in die directory staat.
99
99
In plaats daarvan ziet Git het als een specifieke commit van die repository.
100
100
101
101
Als een een iets betere diff uitvoer wilt, kan je de `--submodule` optie meegeven aan `git diff`.
@@ -256,7 +256,7 @@ Submodule path 'DbConnector': checked out 'd0354fc054692d3906c85c3af05ddce39a1c0
256
256
----
257
257
258
258
Dit commando zal standaard aannemen dat je de checkout wilt updaten naar de `master`-branch van de submodule repository.
259
-
Je kunt echter dit naar iets anders wijzigen als je wilt.
259
+
Je kunt dit echter naar iets anders wijzigen als je wilt.
260
260
Bijvoorbeeld, als je de DbConnector submodule de ``stable'' branch van die repository wilt laten tracken, kan je dit aangeven in het `.gitmodules` bestand (zodat iedereen deze ook trackt), of alleen in je lokale `.git/config` bestand.
261
261
Laten we het aangeven in het `.gitmodules` bestand:
262
262
@@ -274,7 +274,7 @@ From https://github.com/chaconinc/DbConnector
274
274
Submodule path 'DbConnector': checked out 'c87d55d4c6d4b05ee34fbc8cb6f7bf4585ae6687'
275
275
----
276
276
277
-
Als je de `-f .gitmodules` weglaat, zal het de wijziging alleen voor jou maken, maar het is waarschijnlijk zinvoller om die informatie bij de repository te tracken zodat iedereen dat ook zal gaan doen.
277
+
Als je de `-f .gitmodules` weglaat, zal het de wijziging alleen voor jou gelden, maar het is waarschijnlijk zinvoller om die informatie bij de repository te tracken zodat iedereen dat ook zal gaan doen.
278
278
279
279
Als we nu `git status` aanroepen, zal Git ons laten zien dat we ``new commits'' hebben op de submodule.
280
280
@@ -375,12 +375,12 @@ Anders zou je waarschijnlijk een eenvoudiger afhankelijkheids-beheer systeem (de
375
375
376
376
Dus laten we nu eens een voorbeeld behandelen waarin we gelijkertijd wijzigingen aan de submodule en het hoofdproject maken en deze wijzigingen ook gelijktijdig committen en publiceren.
377
377
378
-
Tot dusverre, als we het `git submodule update` commando aanriepen om met fetch wijzigen uit de repositories van de submodule te halen, ging Git de wijzigingen ophalen en de files in de subdirectory updaten, maar zou het de subdirectory laten in een staat die bekend staat als ``detached HEAD''.
378
+
Tot dusverre, als we het `git submodule update` commando aanriepen om met fetch wijzigen uit de repositories van de submodule te halen, ging Git de wijzigingen ophalen en de files in de subdirectory updaten, maar zou het de subdirectory in een staat laten die bekend staat als ``detached HEAD''.
379
379
Dit houdt in dat er geen lokale werk branch is (zoals ``master'', bijvoorbeeld) waar de wijzigingen worden getrackt.
380
380
Zonder een werkbranch waarin de wijzigingen worden getrackt, betekent het dat zelfs als je wijzigingen aan de submodule commit, deze wijzigingen waarschijnlijk verloren zullen gaan bij de volgende keer dat je `git submodule update` aanroept.
381
-
Je zlut een aantal extra stappen moeten zetten als je wijzigingen in een submodule wilt laten tracken.
381
+
Je zult een aantal extra stappen moeten zetten als je wijzigingen in een submodule wilt laten tracken.
382
382
383
-
Om de submodule in te richten zodate het eenvoudiger is om erin te werken, moet je twee dingen doen.
383
+
Om de submodule in te richten zodat het eenvoudiger is om erin te werken, moet je twee dingen doen.
384
384
Je moet in elke submodule gaan en een branch uitchecken om in te werken.
385
385
Daarna moet je Git vertellen wat het moet doen als je wijzigingen hebt gemaakt en daarna zal `git submodule update --remote` nieuw werk van stroomopwaarts pullen.
386
386
Je hebt nu de keuze om dit in je lokale werk te mergen, of je kunt proberen je nieuwe lokale werk te rebasen bovenop de nieuwe wijzigingen.
Als we het hoofdproject committen en deze pushen zonder de submodule wijzigingen ook te pushen, zullen andere mensen die willen zien wat onze wijzigingen inhouden problemen krijgen omdat er geen enkele manier is voor hen om de wijzigingen van de submodule te pakken krijgen waar toch op wordt voortgebouwd.
497
+
Als we het hoofdproject committen en deze pushen zonder de submodule wijzigingen ook te pushen, zullen andere mensen die willen zien wat onze wijzigingen inhouden problemen krijgen omdat er voor hen geen enkele manier is om de wijzigingen van de submodule te pakken te krijgen waar toch op wordt voortgebouwd.
498
498
Deze wijzigingen zullen alleen in onze lokale kopie bestaan.
499
499
500
500
Om er zeker van te zijn dat dit niet gebeurt, kan je Git vragen om te controleren dat al je submodules juist gepusht zijn voordat het hoofdproject wordt gepusht.
@@ -577,7 +577,7 @@ Automatic merge failed; fix conflicts and then commit the result.
577
577
Dus wat er hier eigenlijk gebeurd is, is dat Git heeft achterhaald dat de twee branches punten in de historie van de submodule hebben opgeslagen die uiteen zijn gaan lopen en die gemerged moeten worden.
578
578
Het legt dit uit als ``merge following commits not found'' (merge volgend op commits niet gevonden), wat verwarrend is, maar we leggen zo uit waarom dit zo is.
579
579
580
-
Om dit probleem op te lossen, moet je uit zien te vinden in welke staat de submodule in zou moeten zijn.
580
+
Om dit probleem op te lossen, moet je uit zien te vinden in welke staat de submodule zou moeten zijn.
581
581
Vreemdgenoeg geeft Git je niet echt veel informatie om je hiermee te helpen, niet eens de SHA-1 getallen van de commits van beide kanten van de historie.
582
582
Gelukkig is het redelijk eenvoudig om uit te vinden.
583
583
Als je `git diff` aanroept kan je de SHA-1 getallen van de opgeslagen commits krijgen uit beide branches die je probeerde te mergen.
@@ -592,13 +592,13 @@ index eb41d76,c771610..0000000
592
592
----
593
593
594
594
Dus in dit geval, is `eb41d76` de commit in onze submodule die *wij* hebben en `c771610` is de commit die stroomopwaarts aanwezig is.
595
-
Als we naar onze submodule directory gaan, moet het al aanwezig zin op `eb41d76` omdat de merge deze nog niet zal hebben aangeraakt.
595
+
Als we naar onze submodule directory gaan, moet het al aanwezig zijn op `eb41d76` omdat de merge deze nog niet zal hebben aangeraakt.
596
596
Als deze om welke reden dan ook er niet is, kan je eenvoudigweg een branch die hiernaar wijst aanmaken en uit checken.
597
597
598
598
Wat nu een belangrijke rol gaat spelen is de SHA-1 van de commit van de andere kant.
599
599
Dit is wat je in zult moeten mergen en oplossen.
600
600
Je kunt ofwel de merge met de SHA-1 gewoon proberen, of je kunt een branch hiervoor maken en dan deze proberen te mergen.
601
-
We raden het laatste aan, al was het maar om een mooiere merge commit bericht te krijgen.
601
+
We raden het laatste aan, al was het maar om een mooier merge commit bericht te krijgen.
602
602
603
603
Dus, we gaan naar onze submodule directory, maken een branch gebaseerd op die tweede SHA-1 van `git diff` en mergen handmatig.
604
604
@@ -617,7 +617,7 @@ Recorded preimage for 'src/main.c'
617
617
Automatic merge failed; fix conflicts and then commit the result.
618
618
----
619
619
620
-
We hebben een echte merge conflict, dus als we deze oplossen en committen, dan kunnen we eenvoudigweg het hoofdproject updaten met het resultaat.
620
+
We hebben een echte merge conflict, dus als we deze oplossen en committen, kunnen we eenvoudigweg het hoofdproject updaten met het resultaat.
621
621
622
622
[source,console]
623
623
----
@@ -770,7 +770,7 @@ Dit is overduidelijk een versimpeld voorbeeld, maar hopelijk geeft het je een id
770
770
771
771
===== Bruikbare aliassen
772
772
773
-
Je wilt misschien een aantal aliassen maken voor een aantal van deze commando's omdat ze redelijk lang kunnen zijn en je geen configuratie opties voor de meeste van deze kunt instellen om ze standaard te maken.
773
+
Je wilt misschien een aantal aliassen maken voor een aantal van deze commando's, omdat ze redelijk lang kunnen zijn en je geen configuratie opties voor de meeste van deze kunt instellen om ze standaard te maken.
774
774
We hebben het opzetten van Git aliassen in <<ch02-git-basics-chapter#_git_aliases>> behandeld, maar hier is een voorbeeld van iets wat je misschien zou kunnen opzetten als je van plan bent veel met submodules in Git te werken.
775
775
776
776
[source,console]
@@ -820,7 +820,7 @@ Untracked files:
820
820
nothing added to commit but untracked files present (use "git add" to track)
821
821
----
822
822
823
-
Die directory weghalen is niet moeilijkm maar het kan nogal verwarrend zijn om hem daar te hebben.
823
+
Die directory weghalen is niet moeilijk maar het kan nogal verwarrend zijn om hem daar te hebben.
824
824
Als je het weghaalt en dan weer terug switcht naar de branch die deze submodule heeft, zal je `submodule update --init` moeten aanroepen om het weer te vullen.
Stel je nu voor dat je dit in een branch zou doen.
873
873
Als je naar een branch terug zou switchen waar deze bestanden nog steeds in de actuele tree staan in plaats van in een submodule - krijg je deze fout:
874
874
875
875
[source,console]
@@ -883,7 +883,7 @@ Please move or remove them before you can switch branches.
883
883
Aborting
884
884
----
885
885
886
-
Je kunt forceren om de switch te maken met `checkout -f`, maar wees voorzichtig dat je geen onbewaarde gegevens daar hebt staan omdat deze kunnen worden overschreven met dit commando.
886
+
Je kunt forceren om de switch te maken met `checkout -f`, maar wees voorzichtig dat je daar geen onbewaarde gegevens hebt staan omdat deze kunnen worden overschreven met dit commando.
0 commit comments