Alice démarre avec git:

Paramétrage et initialisations:

On configure d’abord ses paramètres

git config --global user.name "Alice Torvalds"
git config --global user.email "alice@kernel.org"

Création d’un dossier local versionné

mkdir monprojet
cd monprojet
git init

Si vous avez déja du contenu:

git add .

Création d’un dépot « monprojet » sur gitlab

  • Privé

  • Public

  • ou Interne à gitlab

Bitbucket offre également la possibilité d’avoir des dépôts privés de taille limitée.

Github offre les dépôts public et fait payer les dépôts privés.

Connexion entre le local et le gitlab:

Eventuellement : git config push.default simple

git remote add origin https://gitlab.com/alice/monprojet.git
git push -u origin master

ou simplement:

git push

par la suite

Réalisation d’une fonctionnalité par Alice :

  • Alice prend une chose à réaliser et implémente le code nécessaire

  • Alice fait les tests et vérifie que ça marche

  • git commit -am « Message de commit »

Alice pousse son master sur son remote:

git push -u origin master

Bob travaille avec Alice grâce à git:

Bob fait d’abord comme Alice pour paramétrer et initialiser son dépôt local.

Bob vérifie qu’il a bien 2 remotes:

  • Le sien, origin qu’il crée au besoin en faisant:
    git remote add origin https://gitlab.com/bob/monprojet.git
    
  • celui d’Alice qu’il ajoute :
    git remote add alice https://gitlab.com/alice/monprojet.git
    
  • il tape git remote -v pour vérifier ses remotes

  • Si il se trompe:
    git remote remove alice
    

Bob récupère le master d’Alice:

git fetch Alice master

Bob consulte la branche locale correspondant au master d’Alice:

git branch -av
git checkout Alice/master

puis vérifie que le code d’Alice est correct

Bob revient dans son master:

git checkout master

Bob merge le travail d’Alice et pousse les modifs dans son dépôt distant:

git merge Alice/master
git push

Puis detruit la branche locale d’Alice :

git branch -d Alice/master

Alice se met à jour:

  • ajoute le remote de Bob

  • fetche le master de Bob pour se mettre à jour:
    git fetch Bob master
    
  • Fusionne:
    git merge Bob/master