Salta el contingut
 

Remots: Resum d'ordres

Joan Puigcerver Ibáñez

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Remots: Resum d'ordres

Aquest resum recull les ordres presentades en el Bloc 3: Remots.

Gestió de repositoris remots

Aquestes ordres permeten associar repositoris remots al repositori local:

  • git remote: mostra els repositoris remots associats al repositori local.
  • git remote add <alies> <url>: afegeix un repositori remot amb l'àlies especificat.
  • git remote rename <alies> <nou-alies>: canvia l'àlies d'un repositori remot associat al repositori local.
  • git remote remove <alies>: elimina un repositori remot associat al repositori local.
  • git clone <url>: crea una còpia local del repositori remot especificat per url. El repositori remot s'associa automàticament amb l'àlies origin.

Gestió de branques remotes

Aquestes ordres permeten sincronitzar les branques locals i les remotes:

  • git branch -r: mostra les branques remotes associades al repositori local.
  • git push [-u | --set-upstream] <alies> <branca>: publica la branca local en la branca remota especificada del repositori remot alies. Amb -u, a més, associa la branca local amb la remota (upstream), de manera que git push i git pull funcionen després sense arguments.
  • git branch -vv: mostra, per a cada branca local, la branca remota associada (entre claudàtors).
  • git fetch: actualitza les referències remotes del repositori local amb els canvis del repositori remot associat.

    • --prune: elimina les referències de branques remotes que ja no existeixen en el repositori remot.
  • git pull: actualitza la branca local actual (HEAD) amb els canvis de la branca remota associada, mitjançant git fetch i git merge.

    • --ff-only: si no es pot fer fast-forward, el procés es cancel·la.
    • --rebase: fa un rebase en lloc d'un merge per a incorporar els canvis remots.
  • git push -d <alies> <branca>: elimina la branca remota especificada del repositori remot alies.

Configuració

Aquestes claus de configuració modifiquen el comportament per defecte de les ordres anteriors:

  • push.autoSetupRemote: si s'estableix a true, git push associa automàticament cada branca local amb la branca remota del mateix nom.

  • fetch.prune: si s'estableix a true, git fetch elimina automàticament les referències de branques remotes que ja no existeixen en el repositori remot.

    Equivalent a git fetch --prune.

  • pull.ff: configura el comportament de la fusió implícita de git pull respecte de la fusió fast-forward.

    Valors de pull.ff
    Valor Significat
    false Les fusions es fan sempre amb un commit de fusió. Equival a git pull --no-ff.
    only Les fusions es fan només amb fast-forward; si no és possible, el procés es cancel·la. Equival a git pull --ff-only.
  • pull.rebase: si s'estableix a true, git pull fa un rebase en lloc d'un merge per a incorporar els canvis remots.

    Equivalent a git pull --rebase.

~/.gitconfig
[push]
    autoSetupRemote = true
[fetch]
    prune = true
[pull]
    rebase = true

Documentació oficial: git config – Git

Flux de treball amb branques remotes

Aquest és el procediment habitual per a treballar amb una branca que es publica en un repositori remot:

  1. Crea una branca nova localment.

    git checkout -b <nova-branca>
    
  2. Publica la branca nova en el repositori remot.

    git push -u <alies> <nova-branca>
    
  3. Treballa en la branca nova localment i fes els canvis.

    git checkout <nova-branca>
    git add <fitxers>
    git commit -m "<missatge>"
    
  4. Publica els canvis en la branca remota.

    git push
    
  5. Si canvies de dispositiu, actualitza la branca local amb els canvis remots.

    git fetch
    git checkout <nova-branca>
    git pull
    
  6. Fusiona la branca en la branca principal.

    git checkout main
    git merge <nova-branca>
    
    git checkout <nova-branca>
    git rebase main
    git checkout main
    git merge --ff-only <nova-branca>
    

    Les diferents estratègies d'integració de branques es veuen en el Bloc 5: Estratègies de ramificació.

  7. Elimina la branca local i la remota.

    git branch -d <nova-branca>
    git push -d <alies> <nova-branca>
    
  8. Si canvies de dispositiu, elimina les referències remotes que ja no existeixen.

    git fetch --prune
    
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.