Questo capitolo contiene materiale aggiuntivo sul sistema di controllo versione Git. Non ti serve se utilizzi gli script di sviluppo di Sage. Vedi Mettere in piedi Git per i passi minimi necessari per fare sviluppo in Sage.
La tua configurazione personale di Git `e salvata nel file ~/.gitconfig nella tua directory home. Eccone un esempio:
[user]
name = Your Name
email = you@yourdomain.example.com
[core]
editor = emacs
Puoi modificare questo file direttamente o puoi usare Git per farlo:
[user@localhost ~] git config --global user.name "Your Name"
[user@localhost ~] git config --global user.email you@yourdomain.example.com
[user@localhost ~] git config --global core.editor vim
Gli alias sono delle scorciatoie personali ai comandi di Git. Ad esempio potresti voler abbreviare git checkout a git co, oppure git diff --color-words a git wdiff (questo comando formatta a colori il file delle differenze). Puoi farlo con:
[user@localhost ~] git config --global alias.ci "commit -a"
[user@localhost ~] git config --global alias.co checkout
[user@localhost ~] git config --global alias.st "status -a"
[user@localhost ~] git config --global alias.stat "status -a"
[user@localhost ~] git config --global alias.br branch
[user@localhost ~] git config --global alias.wdiff "diff --color-words"
I comandi suddetti creeranno una sezione alias nel tuo file .gitconfig contenente:
[alias]
ci = commit -a
co = checkout
st = status -a
stat = status -a
br = branch
wdiff = diff --color-words
Per impostare l’editor da usare per scrivere i messaggi di commit usare:
[user@localhost ~] git config --global core.editor vim
oppure imposta la variabile di ambiente EDITOR.
Per forzare dei riassunti quando effettui i merge, puoi scrivere in .gitconfig:
[merge]
log = true
Oppure scrivere al prompt dei comandi:
[user@localhost ~] git config --global merge.log true
Ecco un alias per avere un output migliorato esteticamente; va posto nella sezione alias del tuo file .gitconfig:
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)[%an]%Creset' --abbrev-commit --date=relative
L’utilizzo di questo alias lg ti fornisce l’elenco dei cambiamenti (changelog) con un grafico ASCII colorato:
[user@localhost ~] git lg
* 6d8e1ee - (HEAD, origin/my-fancy-feature, my-fancy-feature) NF - a fancy file (45 minutes ago) [Matthew Brett]
* d304a73 - (origin/placeholder, placeholder) Merge pull request #48 from hhuuggoo/master (2 weeks ago) [Jonathan Terhorst]
|\
| * 4aff2a8 - fixed bug 35, and added a test in test_bugfixes (2 weeks ago) [Hugo]
|/
* a7ff2e5 - Added notes on discussion/proposal made during Data Array Summit. (2 weeks ago) [Corran Webster]
* 68f6752 - Initial implimentation of AxisIndexer - uses 'index_by' which needs to be changed to a call on an Axes object - this is all very sketchy right now. (2 weeks ago) [Corr
* 376adbd - Merge pull request #46 from terhorst/master (2 weeks ago) [Jonathan Terhorst]
|\
| * b605216 - updated joshu example to current api (3 weeks ago) [Jonathan Terhorst]
| * 2e991e8 - add testing for outer ufunc (3 weeks ago) [Jonathan Terhorst]
| * 7beda5a - prevent axis from throwing an exception if testing equality with non-axis object (3 weeks ago) [Jonathan Terhorst]
| * 65af65e - convert unit testing code to assertions (3 weeks ago) [Jonathan Terhorst]
| * 956fbab - Merge remote-tracking branch 'upstream/master' (3 weeks ago) [Jonathan Terhorst]
| |\
| |/
Ci sono moltissimi tutorial e riassunti dei comandi disponibili online.
Vi sono molti modi di lavorare con Git; qui ci sono dei linka delle regole di buonsenso raccomandate da altri progetti:
Puoi scaricare queste sulla tua macchina locale con (ad esempio) git help push oppure (equivalentemente) git push --help, ma, per convenienza, ecco le pagine di manuale per alcuni comandi comuni: