2014-12-04 17 views
8

Quando si esegue un clone superficiale in git (utilizzando l'opzione --depth), il commit radice viene contrassegnato come innestato.Che cosa è esattamente un "innesto" commesso in un clone poco profondo?

enter image description here

Googling non ha portato ad alcuna documentazione satisfacting.

Non sembra avere nulla a che fare con git grafts, che la terminologia simile implicherebbe.
È solo una bandiera per segnalare che questo commit ha effettivamente più genitori e non è il commit "reale" di root? O c'è qualcosa di più speciale?

risposta

5

dal tuo link:

Agisce consentendo agli utenti di registrare le informazioni ascendenza falso per commit. In questo modo puoi far sì che Git finga che il gruppo di genitori di un commit sia diverso da quello che è stato registrato al momento della creazione del commit.

In un clone poco profonda, i vostri radice commettono è quello che dovrebbe hanno genitori, ma non nel tuo repo. Quindi sembra un buon caso d'uso per l'innesto.

In effect:

Def .: commit Shallow hanno genitori, ma non nel profondo pronti contro termine, e quindi sono introdotti innesti far finta che questi commit non hanno i genitori.