Categories
git

git (3)

Per costruire applicazioni su iOS è obbligatorio usare un macOS. Alcuni sviluppano su macOS anche per il sistema Android, ma se si vuole sviluppare su due computer diversi è necessario usare un terzo server ssh per sincronizzare i due repository.

Vediamo alcuni comandi utili.

Avviso

Quando su un progetto si usano due repository remoti (uno detto origin di default e uno secondario) si ottiene spesso questo errore:

(con un tentativo di pull)
Not possibile fast-forward, aborting

(con un tentativo di merge)
Refusing to merge unrelated histories

Quindi si sconsiglia questa pratica quando si desiera sincronizzare un progetto che possiede DUE repository remoti. Oppure potrebbe essere utile mantenere separate le due diverse cartelle nascoste .git.

Preparazione

Si crea prima il repository (vuoto) nel server ssh e si esegue il primo commit (senza file)

mkdir progetto
cd progetto
git init --bare
git commit -am "primo commit"

L’opzione –bare renderà non direttamente accessibili i file contenuti del repository del server.

I file saranno accessibili negli altri due computer, dove si può clonarelo stesso repository (ancora vuoto)

git clone ssh://utente@192.168.9.1/home/utente/progetto

I comandi utili già visti sono

git commit -am "commento"
git pull
git push

A volte sono utili anche questi comandi:

se si dimentica di usare l’opzione --bare

cd /nuova/posizione
git clone ssh://utente@192.168.9.1/home/utente/progetto

se si vuole aggiungere un server remoto (detto origin)

git remote -v
git remote add origin ssh://utente@192.168.9.1/home/utente/progetto

Se si desidera modificare la cartella del repository remoto

git remote -v
git remote set-url origin ssh://utente@192.168.9.1/home/utente/progetto

Se non funziona git pull (optando per fetch + merge)

Attenzione al nome diverso (main oppure master)

git branch --all
git checkout main
git fetch origin
git merge origin/main

Leave a Reply