Come modificare l'autore del commit per un commit specifico?


Risposte:


3570

Rinnovo interattivo di un punto precedente alla cronologia rispetto al commit che è necessario modificare ( git rebase -i <earliercommit>). Nella lista dei commit essere calcolato su base, modificare il testo da pickal editaccanto al hash di quello che si desidera modificare. Quindi quando git ti chiede di modificare il commit, usa questo:

git commit --amend --author="Author Name <email@address.com>" --no-edit

Ad esempio, se la tua cronologia di commit è A-B-C-D-E-Fcon Fas HEADe vuoi cambiare l'autore di Ce D, allora dovresti ...

  1. Specifica git rebase -i B( ecco un esempio di ciò che vedrai dopo aver eseguito il git rebase -i Bcomando )
    • se è necessario modificare A, utilizzaregit rebase -i --root
  2. Cambia le linee per entrambi Ce Dda pickaedit
  3. Esci dall'editor (per vim, premere Esc e quindi digitare :wq).
  4. Una volta avviato il rebase, si fermerebbe prima a C
  5. Tu vorresti git commit --amend --author="Author Name <email@address.com>"
  6. Poi git rebase --continue
  7. Si fermerebbe di nuovo a D
  8. Allora lo faresti di git commit --amend --author="Author Name <email@address.com>"nuovo
  9. git rebase --continue
  10. Il rebase sarebbe completo.
  11. Utilizzare git push -fper aggiornare l'origine con gli commit aggiornati.

90
Buona risposta, ma per i principianti: prima trova un commit precedente a quello che vorresti cambiare, poi corrigit rebase -i <commit>
Mathew Byrne,

47
Se non sai in quale editor ti trovi, è probabile che la risposta vim. Per salvare ed uscire, digita Esc: wq Invio. D'altra parte, se è Nano e vedi cose come "WriteOut: ^ O" nella parte inferiore, allora dovresti usare Ctrl + O, Invio, Ctrl + X invece.
Ambra

30
cosa succede se si desidera modificare il primo commit? Qual è il precedente hash di commit allora?
Brenden,

219
Usa l' --no-editopzione. git commit --amend --reset-author --no-editnon aprirà un editor. Disponibile da git 1.7.9.
5lava,

51
@Brenden per modificare il primo commit nel progetto, utilizzaregit rebase -i --root
Noah Passalacqua

488

La risposta accettata a questa domanda è un uso meravigliosamente intelligente del rebase interattivo, ma sfortunatamente mostra conflitti se l'impegno che stiamo cercando di cambiare l'autore del passato era su un ramo che è stato successivamente unito. Più in generale, non funziona quando si gestiscono storie disordinate.

Dato che sono preoccupato per l'esecuzione di script che dipendono dall'impostazione e dall'impostazione delle variabili di ambiente per riscrivere la cronologia di Git, sto scrivendo una nuova risposta basata su questo post che è simile a questa risposta ma è più completa.

Quanto segue è testato e funzionante, a differenza della risposta collegata. Supponiamo per chiarezza di esposizione che 03f482d6è il commit di cui stiamo cercando di sostituire 42627abel'autore , ed è il commit con il nuovo autore.

  1. Controlla il commit che stiamo cercando di modificare.

    git checkout 03f482d6
    
  2. Cambia l'autore.

    git commit --amend --author "New Author Name <New Author Email>"
    

    Ora abbiamo assunto un nuovo commit con l'hash assunto 42627abe.

  3. Acquista il ramo originale.

  4. Sostituisci il vecchio commit con quello nuovo localmente.

    git replace 03f482d6 42627abe
    
  5. Riscrivi tutti i commit futuri in base alla sostituzione.

    git filter-branch -- --all
    
  6. Rimuovere il ricambio per la pulizia.

    git replace -d 03f482d6
    
  7. Invia la nuova cronologia (usa solo --force se il seguito non riesce e solo dopo aver verificato la sanità mentale con git loge / o git diff).

    git push --force-with-lease
    

Invece di 4-6 puoi semplicemente rifare il nuovo commit:

git rebase -i 42627abe

9
Inserisci una nota lì per ricontrollare la tua filiale originale dopo il passaggio 2.
Benjamin Riggs

42
Questa sembra un'alternativa molto chiara all'orribile git rebase -i. Non ho mai sentito parlare di questa git replacecosa prima. +1
FractalSpace

3
Per pulire il backup refs / original / ... vedere qui
alexis

5
Consiglio di utilizzare --force-with-leaseinvece di -f. È più sicuro.
Jay Bazuzi,

11
ATTENZIONE: tenere presente che git filter-branch -- --allsta cambiando i commit in tutti i rami in cui si trovava il commit originale. Se non si dispone di credenziali sufficienti (o semplicemente non si desidera modificare la cronologia dei rami di altri), è bene fare attenzione con questa risposta.
Ribamar,

225

La documentazione di Github contiene uno script che sostituisce le informazioni sul committer per tutti i commit in un ramo .

  • Eseguire il seguente script dal terminale dopo aver modificato i valori delle variabili

    #!/bin/sh
    
    git filter-branch --env-filter '
    
    OLD_EMAIL="your-old-email@example.com"
    CORRECT_NAME="Your Correct Name"
    CORRECT_EMAIL="your-correct-email@example.com"
    
    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
    then
        export GIT_COMMITTER_NAME="$CORRECT_NAME"
        export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
    then
        export GIT_AUTHOR_NAME="$CORRECT_NAME"
        export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
    fi
    ' --tag-name-filter cat -- --branches --tags
    
  • Invia la cronologia corretta a GitHub:

    git push --force --tags origin 'refs/heads/*'
    

    OPPURE se ti piace spingere i riferimenti selezionati dei rami, usa

    git push --force --tags origin 'refs/heads/develop'
    

12
Questo lo cambia in tutti i commit, non solo in uno. Cosa divertente, l'ho fatto meno di 30 minuti fa.
Artjom B.

Quando ho trovato questa risposta dopo aver letto quelle precedenti ho pensato che valesse la pena provare e voilà ha fatto il lavoro. Tuttavia nel mio caso ha cambiato il nome del committer solo nel commit iniziale. A proposito, prima ho provato le idee dalla prima risposta. Forse ha influenzato il sistema in qualche modo.
Ruslan Gerasimov,

2
Nota che se eviti di usare clone/ push, finirai con uno spazio dei nomi di backup refs/original/. Non sono riuscito a trovare un modo per rimuovere questo spazio dei nomi in modo intelligente, quindi ho finito per eliminare la directory .git/refs/original, che ha funzionato.
VasiliNovikov,

Perché questo comporta modifiche al repository se ad esempio OLD_EMAIL non corrisponde a nulla? Per qualche ragione alcuni (ma non tutti!) Commettono il cambio di hash.
mjs

1
Il mio caso d'uso per questa risposta è: ho due account github, uno che ho usato involontariamente per effettuare commit. Questo script mi ​​ha aiutato a correggere tutti i miei commit rinominando i nomi / email errati del committer. Ovviamente, se ho commesso con l'utente sbagliato da, diciamo, 50o commit a 500o commit, ci saranno 450 commit diversi. Ad ogni modo, dopo aver eseguito lo script, come sottolineato da @andrej, dovrai git push -fforzare le modifiche push al repository.
LWY

168
  • Reimposta la tua e-mail sulla configurazione globale:

    git config --global user.email example@email.com

  • Ora reimposta l'autore del commit senza la modifica richiesta:

    git commit --amend --reset-author --no-edit


2
No non lo è. Guarda l'OP: It's not last commit.Quindi come lo farebbero amend?
underscore_d

2
Questo è fantastico, è un peccato, è solo l'ultimo impegno, però. Ne avevo bisogno negli ultimi due, per fortuna, quindi ho appena eseguito un git reset HEAD~, ho eseguito le tue righe suggerite, quindi ho eseguito nuovamente il commit manualmente. Ha funzionato bene!
Matt Fletcher,

2
Grazie! L'autore --reset ha fatto il trucco per me, poiché senza di esso l'autore cambia ma il "commiter" rimane con i dettagli del vecchio autore.
Lucas P.,

9
Per correggere i miei ultimi sei commit: prima imposta l'autore corretto per il repository Git corrente usando git config --local user.name FirstName LastName e git config --local user.email first.last@example.com. Quindi applicare agli ultimi sei commit usando git rebase --onto HEAD~6 --exec "git commit --amend --reset-author --no-edit" HEAD~6. Infine spingerlo nel repository Git remoto usando git push --force-with-lease.
olibre

@olibre funziona come un incantesimo, grazie.
Bruno Gasparotto,

88

È possibile modificare l'autore dell'ultimo commit utilizzando il comando seguente.

git commit --amend --author="Author Name <email@address.com>"

Tuttavia, se vuoi cambiare più di un nome autore, è un po 'complicato. È necessario avviare un rebase interattivo, quindi contrassegnare i commit come modifica, quindi modificarli uno per uno e terminare.

Inizia a ripetere git rebase -i. Ti mostrerà qualcosa del genere.

https://monosnap.com/file/G7sdn66k7JWpT91uiOUAQWMhPrMQVT.png

Cambia la pickparola chiave in editper i commit che vuoi cambiare il nome dell'autore.

https://monosnap.com/file/dsq0AfopQMVskBNknz6GZZwlWGVwWU.png

Quindi chiudere l'editor. Per i principianti, premi Escapequindi digita :wqe premiEnter .

Quindi vedrai il tuo terminale come se niente fosse. In realtà sei nel mezzo di un rebase interattivo. Ora è il momento di modificare il nome dell'autore del commit usando il comando sopra. Si aprirà di nuovo l'editor. Esci e continua con rebase git rebase --continue. Ripetere lo stesso per il conteggio di commit che si desidera modificare. Puoi assicurarti che il rebase interattivo sia terminato quando ricevi il No rebase in progress?messaggio.


Puoi aggiornare le tue foto per favore?
Shimmy Weitzhandler l'

1
Se hai più commit da modificare, invece di modificarli singolarmente, puoi anche lasciare l' pickazione e aggiungere dopo ogni rigaexec git commit --no-edit --amend --author="MyNewAuthor <my@new-auth.or>"
Pierre-Olivier Vares,

60

Le risposte alla domanda a cui ti sei collegato sono buone risposte e coprono la tua situazione (l'altra domanda è più generale poiché comporta la riscrittura di più commit).

Come scusa per provarlo git filter-branch, ho scritto uno script per riscrivere il nome dell'autore e / o l'email dell'autore per un determinato commit:

#!/bin/sh

#
# Change the author name and/or email of a single commit.
#
# change-author [-f] commit-to-change [branch-to-rewrite [new-name [new-email]]]
#
#     If -f is supplied it is passed to "git filter-branch".
#
#     If <branch-to-rewrite> is not provided or is empty HEAD will be used.
#     Use "--all" or a space separated list (e.g. "master next") to rewrite
#     multiple branches.
#
#     If <new-name> (or <new-email>) is not provided or is empty, the normal
#     user.name (user.email) Git configuration value will be used.
#

force=''
if test "x$1" = "x-f"; then
    force='-f'
    shift
fi

die() {
    printf '%s\n' "$@"
    exit 128
}
targ="$(git rev-parse --verify "$1" 2>/dev/null)" || die "$1 is not a commit"
br="${2:-HEAD}"

TARG_COMMIT="$targ"
TARG_NAME="${3-}"
TARG_EMAIL="${4-}"
export TARG_COMMIT TARG_NAME TARG_EMAIL

filt='

    if test "$GIT_COMMIT" = "$TARG_COMMIT"; then
        if test -n "$TARG_EMAIL"; then
            GIT_AUTHOR_EMAIL="$TARG_EMAIL"
            export GIT_AUTHOR_EMAIL
        else
            unset GIT_AUTHOR_EMAIL
        fi
        if test -n "$TARG_NAME"; then
            GIT_AUTHOR_NAME="$TARG_NAME"
            export GIT_AUTHOR_NAME
        else
            unset GIT_AUTHOR_NAME
        fi
    fi

'

git filter-branch $force --env-filter "$filt" -- $br

+1 grazie. assemblla.com repository git non sembra modificare tutti i riferimenti autore nella vista web del repository, ma i risultati di 'git pull / clone' sembrano funzionare bene.
Johnny Utahh,

Ottima soluzione, poiché cambia solo ciò che è previsto e non altri campi, come la data di commit.
Guillaume Lemaître,

12
La documentazione di Github contiene una sceneggiatura simile
olivieradam666,

2
@olivieradam666 che funziona come un fascino ed è più facile da leggere
fregante

@olivieradam666 Grazie. Dovresti davvero aggiungerlo come risposta in modo da attirare più attenzione.
Seane,

44

Impegnare prima:

inserisci qui la descrizione dell'immagine

Per correggere l'autore di tutti i commit è possibile applicare il comando dalla risposta di @ Amber:

git commit --amend --author="Author Name <email@address.com>"

O per riutilizzare il tuo nome ed e-mail puoi semplicemente scrivere:

git commit --amend --author=Eugen

Commettere dopo il comando:

inserisci qui la descrizione dell'immagine

Ad esempio per cambiare tutto a partire da 4025621:

inserisci qui la descrizione dell'immagine

Devi eseguire:

git rebase --onto 4025621 --exec "git commit --amend --author=Eugen" 4025621

Nota: per includere un autore contenente spazi come un nome e un indirizzo e-mail, l'autore deve essere racchiuso tra virgolette. Per esempio:

git rebase --onto 4025621 --exec "git commit --amend --author=\"Foo Bar <foo@bar.com>\"" 4025621

o aggiungi questo alias in ~/.gitconfig:

[alias]
    reauthor = !bash -c 'git rebase --onto $1 --exec \"git commit --amend --author=$2\" $1' --

E poi esegui:

git reauthor 4025621 Eugen

1
Per verificare che il comando abbia funzionato come previsto, ho esaminato l'output di git shortlog -e -s.
Taylor Edmiston,

5
Questa è la risposta che mi ha servito meglio, grazie. E dal momento che volevo solo adattarmi mio indirizzo e-mail, avrei potuto eseguire con --exec = "git commit --amend --reset-author", dopo aver aggiornato il mio .git / config.
Dato

1
Eeh, non sono sicuro del motivo per cui mi sono dimenticato! Fatto ora.
Dato

Ottima risposta e molto facile da risolvere. Adoro l'alias!
J_A_X l'

questo non mi ha aiutato. ora ho errore Continua Rebase fallito
Alexey Sh.

17

C'è un ulteriore passaggio nella risposta di Amber se si utilizza un repository centralizzato:

git push -f per forzare l'aggiornamento del repository centrale.

Fai attenzione che non ci siano molte persone che lavorano nello stesso ramo perché può rovinare la coerenza.


16

Quando lo fai git rebase -ic'è questo bit interessante nel documento:

Se si desidera piegare due o più commit in uno, sostituire il comando "pick"per il secondo e i commit successivi con "squash"o "fixup". Se i commit avevano autori diversi, il commit piegato verrà attribuito all'autore del primo commit. Il messaggio di commit suggerito per il commit piegato è la concatenazione dei messaggi di commit del primo commit e di quelli con il "squash"comando, ma omette i messaggi di commit dei commit con il "fixup"comando.

  • Se hai una storia di A-B-C-D-E-F ,
  • e vuoi cambiare commit Be D(= 2 commit),

allora puoi fare:

  • git config user.name "Correct new name"
  • git config user.email "correct@new.email"
  • creare commit vuoti (uno per ogni commit):
    • hai bisogno di un messaggio a scopo di rebase
    • git commit --allow-empty -m "empty"
  • avviare l'operazione di rebase
    • git rebase -i B^
    • B^seleziona il genitore di B.
  • vorrai mettere un commit vuoto prima di ogni commit da modificare
  • si vuole cambiare picka squashper quelli.

Esempio di cosa git rebase -i B^ti darà:

pick sha-commit-B some message
pick sha-commit-C some message
pick sha-commit-D some message
pick sha-commit-E some message
pick sha-commit-F some message
# pick sha-commit-empty1 empty
# pick sha-commit-empty2 empty

cambialo in:

# change commit B's author
pick sha-commit-empty1 empty
squash sha-commit-B some message
# leave commit C alone
pick sha-commit-C some message
# change commit D's author
pick sha-commit-empty2 empty
squash sha-commit-D some message
# leave commit E-F alone
pick sha-commit-E some message
pick sha-commit-F some message

Ti verrà richiesto di modificare i messaggi:

# This is a combination of 2 commits.
# The first commit's message is:

empty

# This is the 2nd commit message:

...some useful commit message there...

e puoi semplicemente rimuovere le prime poche righe.


16

Per favorire la risposta di Eugen Konkov , per iniziare dal commit di root, usa --rootflag. Anche la --no-editbandiera è utile

git rebase --root --exec "git commit --amend --author='name <email>' --no-edit"

Questo ha funzionato e cambiato su tutti gli impegni.
SagarKapasi099

1
Grazie per la risposta. Doveva aggiungere --interactive per farlo funzionare. git rebase --root --interactive --exec "git commit --amend --author = 'name <email>' --no-edit"
Sreeragh AR

8

Trova un modo per cambiare rapidamente l'utente e senza effetti collaterali per gli altri commit.

Modo semplice e chiaro:

git config user.name "New User"
git config user.email "newuser@gmail.com"

git log
git rebase -i 1f1357
# change the word 'pick' to 'edit', save and exit

git commit --amend --reset-author --no-edit
git rebase --continue

git push --force-with-lease

operazioni dettagliate

  • mostra i log di commit e scopri l'id di commit che precede il commit che desideri modificare:
git log
  • git rebase inizia dall'identificatore di commit scelto al recente contrario:
git config user.name "New User"
git config user.email "newuser@gmail.com"
git rebase -i 1f1357

# change word pick to edit, save and exit
edit 809b8f7 change code order 
pick 9baaae5 add prometheus monitor kubernetes
edit 5d726c3 fix liquid escape issue   
edit 3a5f98f update tags
pick 816e21c add prometheus monitor kubernetes
  • rebase verrà arrestato al successivo ID di commit, output:
Stopped at 809b8f7...  change code order 
You can amend the commit now, with
  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue
  • conferma e continua il tuo rebase fino a quando non lo avrà successo refs/heads/master.
# each continue will show you an amend message
# use git commit --amend --reset-author --no-edit to comfirm
# use git rebase --skip to skip
git commit --amend --reset-author --no-edit
git rebase --continue
git commit --amend --reset-author --no-edit
...
git rebase --continue
Successfully rebased and updated refs/heads/master.
  • git push per aggiornare
git push --force-with-lease

5

Se il commit che si desidera modificare non è l'ultimo commit, seguire i passaggi seguenti. Se il commit è in un ramo diverso, passa prima a quel ramo.

git checkout branch_name

Trova il commit prima del commit che desideri modificare e trova il suo hash. Quindi emettere il comando rebase.

git rebase -i -p hash di commit

Quindi un editor si aprirà e inserirà 'modifica' per i commit che si desidera modificare. Lascia gli altri con l'opzione 'pick' predefinita. Una volta modificato, inserire il tasto 'esc' e wq! uscire.

Quindi emettere il comando git commit con l'opzione di modifica.

git commit --amend --author = "Username email" --no-edit

Quindi emettere il seguente comando.

git rebase --continua

Una volta che l'autore del commit viene aggiornato nel repository locale, inviare le modifiche al repository remoto.


Penso che questo sia il modo più semplice per farlo. Stavo usando il comando reword e questo non riesce. Ho imparato che invece devo usare il comando edit. Forse la parola chiave "modifica" può essere evidenziata. Grazie per la risposta @ChannaB 👍
Berk,

passi davvero facili da seguire. Grazie!
Habiba

4

C'è anche un approccio pigro a questo problema, specialmente se hai più di un commit che vuoi cambiare. Nel mio caso, avevo una nuova filiale con diversi commit con un autore sbagliato, quindi cosa mi ha aiutato:

Vai alla tua filiale originale:

git checkout develop

Crea un nuovo ramo da esso:

git checkout -b myFeature develop 

Uniscilo senza informazioni di commit come un commit:

git merge --no-commit --squash branchWrongAuthor

Potresti anche voler mettere in scena i cambiamenti:

git stage .

Cambia il nome dell'autore e apporta le modifiche:

git commit --amend --author "New Author Name <New Author Email>" -m "new feature added"

Ed è tutto, puoi spingere le modifiche.

git push

Successivamente puoi eliminare il ramo con un autore sbagliato.


4

Passaggi per rinominare il nome dell'autore dopo aver eseguito il commit

  1. Prima digita "git log" per ottenere l'id di commit e maggiori dettagli
  2. git rebase i HEAD ~ 10 (10 è il commit totale da visualizzare su rebase)

    If you Get anything like below

    fatal: It seems that there is already a rebase-merge directory, and I wonder if you are in the middle of another rebase. If that is the case, please try

    git rebase (--continue | --abort | --skip) If that is not the case, please rm -fr ".git/rebase-merge" and run me again. I am stopping in case you still have something valuable there.

  3. Quindi digitare "git rebase --continue" o "git rebase --abort" secondo le tue necessità

    • ora la finestra di rebase verrà aperta, fare clic sul tasto "i" dalla tastiera
    • quindi otterrai un elenco di commit su 10 [perché abbiamo superato 10 commit sopra] Come sotto

    pick 897fe9e simplify code a little

    pick abb60f9 add new feature

    pick dc18f70 bugfix

  4. Ora devi aggiungere il comando di seguito appena sotto il commit che desideri modificare, come di seguito

    pick 897fe9e simplify code a little exec git commit --amend --author 'Author Name <author.name@mail.com>' pick abb60f9 add new feature exec git commit --amend --author 'Author Name <author.name@mail.com>' pick dc18f70 bugfix exec git commit --amend --author 'Author Name <author.name@mail.com>'

    1. Ecco fatto, ora premi ESC,: wq e sei pronto

    2. Quindi git push origin HEAD: BRANCH NAME -f [si prega di occuparsi di -f Force push]

    come git push -fogit push origin HEAD: dev -f


ottima risposta, potresti aggiornare il punto 6 con un esempio di git pushcomando?
Lukasz 'Severiaan' Grela,

1
@ Lukasz'Severiaan'Grela modificato, si prega di controllare ora, grazie
Kirtikumar A.

3

Modifica del nome e dell'email del committer a livello globale:

$ git config --global user.name "John Doe"
$ git config --global user.email "john@doe.org"

Modifica del nome e dell'email del committer per repository:

$ git config user.name "John Doe"
$ git config user.email "john@doe.org"

Modifica delle informazioni sull'autore solo per il prossimo impegno:

$ git commit --author="John Doe <john@doe.org>"

Suggerimento : per altre situazioni e leggi maggiori informazioni leggi il riferimento al post .


2

Se ciò che è necessario modificare è il commit AUTORE DELL'ULTIMO e nessun altro utilizza il repository, è possibile annullare l'ultimo commit con:

git push -f origin last_commit_hash:branch_name 

cambia il nome dell'autore del tuo commit con:

git commit --amend --author "type new author here"

Esci dall'editor che si apre e premi nuovamente il tuo codice:

git push

2

Per il messaggio di commit di merge, ho scoperto che non posso modificarlo usando rebase, almeno su gitlab. Mostra l'unione come commit ma non posso rifare su quella #sha. Ho trovato utile questo post.

git checkout <sha of merge>
git commit --amend # edit message
git rebase HEAD previous_branch

Queste tre righe di codice hanno fatto il lavoro per cambiare il messaggio di commit della fusione (come l'autore).


1

puoi usare questi comandi dalla pagina ufficiale di github

https://help.github.com/en/github/using-git/changing-author-info

ecco i comandi

#!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.com"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

qui puoi cambiare la vecchia e-mail con il tuo nuovo nome utente e indirizzo e-mail.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.