Git Submodule Cheatsheet

git clone <url> --recursive

Maak een submodule aan in een bestaande repo

als je het pad van de submodule wilt bijwerken (dat wil zeggen waar de submodule op je lokale kloon wordt opgeslagen gebruik

git submodule init
git mv oldpath/submodule newpathsubmodule
git submodule update

merk op dat dit zal veranderen de vermelding in de .,gitmodule bestand en je wilt het misschien niet committen en meestal gebruik je alleen git submodule update --init omdat het meer consistent zal zijn met de SCM

Verwijder ongebruikte Submodule

Remove referencing lines in .gitmodules
Remove referencing lines in .git/config
rm -rf submodule-dir/
git add
git commit -m "removing submodule"

controleer de submodule status als je verwijderd bent.

Controleer submodules status

Git-submodules gebruiken eigenlijk de commit rev van een andere repository en je zult deze wijzigingen naar je hoofdrepo moeten pushen als je ze wilt updgraden.,

deze worden bewezen bij het controleren van de plumbing van de rev die wijst naar de submodule

$ git log bats
commit aa69c87bd96cb6aa0d586b871cfdd4da3abe0d3e
Author: <[email protected]>
Date: Tue Sep 13 23:47:58 2016 +0900 Set up basic BATS test framework$ git cat-file -p aa69
tree b6e54e3e4a1e6aeae3a46d1c296a08dbd2bfd10a
parent e7134d506995dce59a14df8dd8d49a7a2e844a8d
author <[email protected]> 1473778078 +0900
committer <[email protected]>1473783135 +0900$ git cat-file -p b6e54
100644 blob 82520ca123af9986966f282a109093cf39780722 .gitignore
100644 blob c1ddd1345dfd5b028dd16d55ae5f8aed286a019a .gitmodules
100644 blob b3d51add840a46d2590a3809905f0ebb980471f9 README.md
100755 blob 067db410b175787f5621b7737552e5e0558c7a3a Test
160000 commit 03608115df2071fff4eaaff1605768c275e5f81f bats ### Commit from another repository ###
040000 tree cc240386f9cc2546ec383b9d7afc7f432bf70f69 t

trek een submodule na het klonen van een repository

# Your repository will have .gitmodules file
cd ~/repository
git submodule update --init # Adding --recursive here will also update the submodule's submodule if it exists

Update de repository url op .git / config from .gitmodules ook

git submodule sync # Adding --recursive here will also update the submodule's submodule if it exists

Checkout een specifieke branch op submodule

standaard zal uw submodule de specifieke rev van een repository controleren tijdens de commit naar de hoofd repository. Als je een branch in de submodule wilt gebruiken (bijvoorbeeld stabiele branches) moet je branch toevoegen .,gitmodules bestand en gebruik

git submodule update --remote

Als u geen branches hebt opgegeven en --remote gebruikt, zal het automatisch master branch ophalen. Als u de submodule ook aan het ontwikkelen bent, kunt u --merge of --rebase gebruiken als gemak

ontwikkelen in Submodule

u kunt een speciale push gebruiken als u uw submodule wilt bijwerken vanuit uw hoofdrepo

ook kunt u een foreach Comam gebruiken en

$ git submodule foreach 'git stash'
Entering 'CryptoLibrary'
No local changes to save
Entering 'DbConnector'
Saved working directory and index state WIP on stable: 82d2ad3 Merge from origin/stable
HEAD is now at 82d2ad3 Merge from origin/stable

tot slot kunt u deze alias gebruiken om uw workflow

te verbeteren

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *