User Tools

Site Tools


doc:appunti:prog:git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:prog:git [2022/01/10 09:57] – [Revert di un singolo file] niccolodoc:appunti:prog:git [2026/03/07 07:30] (current) niccolo
Line 134: Line 134:
 </code> </code>
  
-se invece della versione corrente si vuole etichettare un commit precedente, bisogna individuare l'hash ed eseguire il comando (notare che l'hash è indicato in forma abbreviata):+Una pratica abbastanza diffusa è quella di usare il solo numero di versione come tag, es. **v0.41**. Viene aperto l'editor per poter inserire una **breve descrizione** del tag. 
 + 
 +Se invece della versione corrente si vuole etichettare un commit precedente, bisogna individuare l'hash ed eseguire il comando (notare che l'hash è indicato in forma abbreviata):
  
 <code> <code>
Line 148: Line 150:
 <code> <code>
 git push origin print3d-1.0 git push origin print3d-1.0
 +</code>
 +
 +È possibile anche fare il push di tutti i nuovi tag con il comando:
 +
 +<code>
 +git push origin --tags
 </code> </code>
  
Line 256: Line 264:
 ===== Misc Commands ===== ===== Misc Commands =====
  
-==== Revert di un singolo file ====+==== Restore o revert di un singolo file ====
  
 A partire da Git 2.23 esiste il comando **git restore** che consente di ripristinare un file modificato localmente alla sua versione di checkout: A partire da Git 2.23 esiste il comando **git restore** che consente di ripristinare un file modificato localmente alla sua versione di checkout:
Line 300: Line 308:
 git remote show origin git remote show origin
 </code> </code>
 +
 +===== Annullare le modifiche locali in conflitto con origin/main =====
 +
 +Se un file è stato cambiato sia nella copia locale che nel repository originale, queste sono le istruzioni per annullare le modifiche locali e riallineare tutto al **origin/main** (nell'esempio il file cambiato è ''database-pgsql.sql''):
 +
 +<code>
 +git fetch origin
 +git checkout origin/main -- database-pgsql.sql
 +git pull
 +git status
 +</code>
 +
 +In questo modo le modifiche locali vengono annullate e **non resta traccia** di esse nel git.
  
 ===== Annullare le modifiche locali ===== ===== Annullare le modifiche locali =====
Line 334: Line 355:
 git merge '@{u}' git merge '@{u}'
 </code> </code>
 +
 +===== Ignorare le modifiche locali =====
 +
 +Se in un clone locale è necessario modificare alcuni file (ad esempio un file di configurazione) ma non si vuole che tale modifica sia propagata al repository, è possibile marcare ciascun file in questo modo:
 +
 +<code>
 +git update-index --skip-worktree config/database.php
 +</code>
 +
 +Il file in questione verrà **ignorato** sia da **pull** che da **push**. Per rimuovere tale caratteristica:
 +
 +<code>
 +git update-index --no-skip-worktree config/database.php
 +</code>
 +
 +Purtroppo questa configurazione non può essere utilizzata per ignorare una intera directory.
  
 ===== Chiave SSH per Github.com ===== ===== Chiave SSH per Github.com =====
Line 361: Line 398:
 ssh -T git@github.com ssh -T git@github.com
 Hi RigacciOrg! You've successfully authenticated, but GitHub does not provide shell access. Hi RigacciOrg! You've successfully authenticated, but GitHub does not provide shell access.
-</code<+</code>
  
 Verifichiamo che un repository locale sia stato clonato tramite protocollo HTTPS: Verifichiamo che un repository locale sia stato clonato tramite protocollo HTTPS:
doc/appunti/prog/git.1641805030.txt.gz · Last modified: by niccolo