Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools

Difference between revisions of "CSharp:Source Control - Git - Dizionario"

From Aino Wiki

Jump to: navigation, search
(Termini)
(Termini)
 
Line 27: Line 27:
  
 
||
 
||
Crea un brach 'develop' copia di master:
+
Crea un brach 'develop' copia di master:$ git branch develop
$ git branch develop
+
 
$ git push -u origin develop
 
$ git push -u origin develop
 +
 
|-
 
|-
 
||'''Check in'''
 
||'''Check in'''
Line 39: Line 39:
 
Il comando <code>git checkout</code> è usato per cambiare tra differenti branch e ripristinare il working tree dei files. Quindi consente di "navigare tra specifici commit o branch del tuo repository.
 
Il comando <code>git checkout</code> è usato per cambiare tra differenti branch e ripristinare il working tree dei files. Quindi consente di "navigare tra specifici commit o branch del tuo repository.
  
'''<code>git checkout master</code>''' è uno dei comandi fondamentali perché indipendentemente dalle versioni più aggiornati ci riporta alla versione ufficiale.
+
'''<code>git checkout master</code>''' è uno dei comandi fondamentali perché indipendentemente dalle versioni più aggiornati ci riporta alla versione ufficiale.<br />
 
+
[https://git-scm.com/docs/git-checkout Help]
 
||$ git checkout branch-name
 
||$ git checkout branch-name
 
$ '''git checkout master''' <span style="color: #339966;">#Per RITORNARE all'ultima versione</span>
 
$ '''git checkout master''' <span style="color: #339966;">#Per RITORNARE all'ultima versione</span>

Latest revision as of 16:46, 17 October 2024

Termini

Termine o comando Git Significato Esempio
Bare repository

E' un repository nudo ovvero privo dei files di lavoro su cui si può direttamente lavorare per modificarli, è un archivio che ha solo i files di lavoro di Git, il contenuto invece è protetto quindi criptato.

Blame Letteralmente "incolpare, dare la responsabilità".
Blob E' una contrazione di "Binary large object". Ogni versione di un file è rappresentato da un blob, è un termine con cui ci si riferisce ad una variabile o file che possa contenere qualsiasi dato indipendentemente  dal sua interpretazione.
Branch

E' una diramazione della versione dell'intero progetto. E un commit a cui s’è data una etichetta per identificarlo importante notare chesono gerarchici ognuno ha un precedente tranne il primo. Il primo branch didefault è main o master creato con l’init, unbranch è un puntatore a uno specifico commit. Ci posson essere vari branch che corrispondono a versioni importanti del progetto e si possono unire mediante operazione di merge verso il ramo principale o altri,

Crea un brach 'develop' copia di master:$ git branch develop $ git push -u origin develop

Check in Letteralmente "prendere possesso", "controllare". In Git non esistono i concetti di Check-in e check-out tipici di SVN ma quando si parla di check in si intende eseguire un git commit quindi consolidare le modifiche localmente. ...
Check out

Il comando git checkout è usato per cambiare tra differenti branch e ripristinare il working tree dei files. Quindi consente di "navigare tra specifici commit o branch del tuo repository.

git checkout master è uno dei comandi fondamentali perché indipendentemente dalle versioni più aggiornati ci riporta alla versione ufficiale.
Help

$ git checkout branch-name

$ git checkout master #Per RITORNARE all'ultima versione

Per ripristinare un file specifico al suo stato di un particolare commit:
$ git checkout commit-hash -- file.txt

Commit

E' un’istantanea (chiamata anche snapshot) del repository ovvero dell’insieme delle risorse da gestire\versionare, poiché ci possono essere vari commit nella storia di un repository ogni commit è identificato univocamente. Git non si limita a memorizzare le differenze tra due versioni successive ma salva l’istantanea (compressa) del contenuto di tutti i file; se un file non cambia contenuto tra due commit viene messo un riferimento al commit precedente. Ogni commit conosce il suo “genitore” (parent commit).

downstream Si fa downstream ogni volta che si fa una copia da un repository es con clone, checkout, etc.
Fetch Letteralmente "prendere". Azione per prelevare da Git (locale o remoto) sovrascrivendo i file locali, quindiignorando tutte le modifiche locali.
Fork Letteralmente "forchetta" ma anche "bivio". Un "fork" in Git è una copia di un repository esistente in cui un nuovo owner si discosta dalla linea di codice\sviluppo ufficiale. Avviene quando uno sviluppatore vuole allontanarsi dal progetto originale. Quando si crea un Fork i precedenti contributori non saranno in grado di committare codice a meno che l'owner non gli dia accesso.
Head

E' il puntatore al commit corrente. Ad ogni nuovo commit, l’head è aggiornato. LaWorking Copy attuale è quella a cui punta il puntatore head, tuttavia percapire qual è l’head della Working Copy attuale si esegue il comando git log –graph –-all –oneline

master

E' il branch master e rappresenta la versione ufficiale del repository (questo non vuol dire che non ce ne siano di più aggiornate ma non sono quella definitiva ma "temporanea" a determinati fini)

Object database

E' ildatabase chiave/valore conservato nella cartella nascosta .git. lachiave è un valore calcolato in SHA1, il valore è il contenuto del file.

Origin E' un'abbreviazione che stà a rappresentare il repository remoto da cui inizialmente si è clonato. Più precisamente è utilizzato al posto dell'URL del repository remoto a cui ci si riferenzia più facilmente.
Pull Letteralmente "tirare". E' l’opposto di push) acquisizione\download di un repository remoto da fondere edintegrare localmente. $ git pull origin master

Questo comando scarica DAL server tutti il repository sulla tua macchina come un aggiornamento.

Push Letteralmente "spingere". Help Operazione di aggiornamento di un repository remoto, da un client si spingono le modifiche nell’archivio remoto. Esegue anche localmente la copia da un brach ad un altro es da master a develop $ git push origin master

$ git push -u origin develop

-u = Aggiunge upstream reference

Remote repository

O semplicemente Remote, è un repository su altro computer col quale si può chiedere che lui si allinei al nostro contenuto o ci si può allinearsi al suo i comandi a disposizione per farlo sono rispettivamente: push e fetch. Nel momento in cui si esegue un git clone si crea una copia locale e si salva il riferimento (URL) al repository da cui ha recuperato i dati, tale riferimento prende il nome di “remote”.

Repository

E' il database locale su file che conserva i vari commit.

Snapshot

E' un'istantanea dellintero progetto. Ogni volta che si fa un Commit Git crea una immagine di TUTTI i files presenti in quel momento e salva un riferimento chiamato "index".

(Git in realtà non salva nuovamente tutti i file per ogni commit, ma crea per ciascuno di essi un collegamento alla sua versione precedente già salvata)

Staging area o index

fa datramite tra il file system ed il repository. È uno spazio dove parcheggiare glioggetti pronti per il prossimo commit mediante il quale finiranno nelrepository.

Stash

"metter da parte".  Nel mezzo di un lavoro può esser necessario spostarsi temporanemente su un branch, l'aiuto viene dall'uso del comando git stash. Stash salva nello stack lo stato "sporco" della tua working directory a cui tu potrai accedere successivamente. In ogni istante si può vedere l'elenco degli stash col comando git stash list, per spostarsi su uno stash particoalre digitare git stash apply codice (dove codice può esser stash@{n) ) se non si inserisce il codisce ci sis posa sull'ultimo stash. help

Tag

E' una etichetta/segnalibro che si può dare ad uno specifico oggetto come un commit allo scopo di potersvisi riferire in modos emplificato ed umano. Generalmente sono le etichette di versione. 

Un branch dopo esser creato evolve con successivi commit mentre un tag viene usato per identificare un punto cronologico per potervi accedere successivamente in modo facilitato. Utilizzo tipico dei tag è quello di contrassegnare un determinato rilascio o versione. Son di due tipi: lightweight (privi di info supplementari come data, nome utente),  annotated (che associa info come data, nome utente, email utente.., es. git tag -a <TAG_NAME>).

Tree

Può essere usato in tre accezioni:

  • working tree: si riferisce alla working directory
  • tree object: si riferisce alla struttura dati usata da Git per memorizzare cartelle e sottocartelle
  • internal tree object è un oggetto usato da Git per controllare lo snapshot del commit
Upstream

Si riferisce al branch principale da cui un dato branch è stato ramificato e a cui eventualmente si possono inviare i cambiamenti (push). Git usa di default "origin" come nome remoto del repository upstream.

Quando si fa un cambiamento questo dovrà esser inviato "indietro" facendo upstream in modo che anche gli altri ne abbiamo un aggiornamento dalla sorgente aggiornata (origin).

Working copy

Detta anche working directory o working tree, è la cartella dove ci sono i file del nostro progetto e sui quali lavoriamo. I files della working copy possono essere in uno dei seguenti stati:

  • Unmodified,
  • Untracked, sono tutti quei files che, dopo l'ultimo, son stati aggiunti o modificati. (Sono untracked anche i files 'ignorati')
  • Modified, se è stato modificato ma non ancora committato.
  • Staged, messo in un area, stage, e pronto per il commit.
  • Committed quando è al sicuro nel database locale.

Traked sono i files presenti nell'ultimo commit e posson esser: unmodified, modified o staged.

Tabella comandi

Da Help

git help -a
usage: git [--version] [--help] [-c name=value]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]

available git commands in '/usr/local/Cellar/git/1.8.4/libexec/git-core'

  add               config                    gc                 merge-one-file   relink             show-ref
  add--interactive  count-objects             get-tar-commit-id  merge-ours       remote             stage
  am                credential                grep               merge-recursive  remote-ext         stash
  annotate          credential-cache          gui                merge-resolve    remote-fd          status
  apply             credential-cache--daemon  gui--askpass       merge-subtree    remote-ftp         stripspace
  archimport        credential-store          hash-object        merge-tree       remote-ftps        submodule
  archive           cvsexportcommit           help               mergetool        remote-http        svn
  bisect            cvsimport                 http-backend       mktag            remote-https       symbolic-ref
  bisect--helper    cvsserver                 http-fetch         mktree           remote-testsvn     tag
  blame             daemon                    http-push          mv               repack             tar-tree
  branch            describe                  imap-send          name-rev         replace            unpack-file
  bundle            diff                      index-pack         notes            repo-config        unpack-objects
  cat-file          diff-files                init               p4               request-pull       update-index
  check-attr        diff-index                init-db            pack-objects     rerere             update-ref
  check-ignore      diff-tree                 instaweb           pack-redundant   reset              update-server-info
  check-mailmap     difftool                  log                pack-refs        rev-list           upload-archive
  check-ref-format  difftool--helper          lost-found         patch-id         rev-parse          upload-pack
  checkout          fast-export               ls-files           peek-remote      revert             var
  checkout-index    fast-import               ls-remote          prune            rm                 verify-pack
  cherry            fetch                     ls-tree            prune-packed     send-email         verify-tag
  cherry-pick       fetch-pack                mailinfo           pull             send-pack          web--browse
  citool            filter-branch             mailsplit          push             sh-i18n--envsubst  whatchanged
  clean             fmt-merge-msg             merge              quiltimport      shell              write-tree
  clone             for-each-ref              merge-base         read-tree        shortlog
  column            format-patch              merge-file         rebase           show
  commit            fsck                      merge-index        receive-pack     show-branch
  commit-tree       fsck-objects              merge-octopus      reflog           show-index

Mappa e Link


Source Control | Git | TFS, Azure DevOps Server


C# | Visual Studio | MS SQL | Dizionario | DOS - Command Prompt


Parole chiave: