Git
Chapters ▾ 2nd Edition

A1.4 Appendix A: Το Git σε άλλα περιβάλλοντα - Το Git στο Bash

Το Git στο Bash

Αν είμαστε χρήστες του Bash, μπορούμε να αξιοποιήσουμε κάποιες από τις λειτουργίες του κελύφους μας για να κάνουμε την εμπειρία μας με το Git πολύ πιο φιλική. Το Git στην πραγματικότητα φέρει plugins για πολλά κελύφη, αλλά δεν είναι ενεργοποιημένο εκ προεπιλογής.

Πρώτον, πρέπει να λάβουμε ένα αντίγραφο του αρχείου contrib/completion/git-completion.bash εκτός του πηγαίου κώδικα Git. Το αντιγράφουμε κάπου βολικά, όπως στον αρχικό μας κατάλογο και προσθέτουμε το παρακάτω στο .bashrc μας:

. ~/git-completion.bash

Μόλις γίνει αυτό, αλλάζουμε τον κατάλογο σε ένα αποθετήριο Git και πληκτρολογούμε:

$ git chec<tab>
  1. και το Bash θα ολοκληρώσε αυτόματα σε git checkout. Αυτό λειτουργεί με όλες τις δευτερεύουσες εντολές του Git, τις παραμέτρους της γραμμής εντολών και τα απομακρυσμένα αποθετήρια και τα ονόματα ref, όπου χρειάζεται.

Είναι επίσης χρήσιμο να προσαρμόσουμε την προτροπή μας ώστε να εμφανίζονται πληροφορίες σχετικά με το αποθετήριο Git του τρέχοντος καταλόγου. Αυτό μπορεί να είναι τόσο απλό όσο και πολύπλοκο όσο θέλουμε, αλλά υπάρχουν γενικά μερικά βασικά κομμάτια πληροφοριών που ο περισσότερος κόσμος θέλει, όπως ο τρέχων κλάδος, και η κατάσταση του καταλόγου εργασίας. Για να τα προσθέσουμε στην προτροπή μας, απλά αντιγράφουμε το αρχείο contrib/completion/git-prompt.sh από τον αποθετήριο πηγαίου κώδικα του Git στον οικείο κατάλογό μας, προσθέτουμε κάτι τέτοιο στο` .bashrc` μας:

. ~/git-prompt.sh
export GIT_PS1_SHOWDIRTYSTATE=1
export PS1='\w$(__git_ps1 " (%s)")\$ '

Το \w σημαίνει την εκτύπωση του τρέχοντος καταλόγου εργασίας, το \$ εκτυπώνει το τμήμα $ της προτροπής και το __git_ps1 " (%s)" καλεί τη λειτουργία που παρέχεται από το git-prompt.sh με ένα όρισμα μορφοποίησης. Τώρα η προτροπή του bash θα μοιάζει με αυτό όταν είμαστε οπουδήποτε μέσα σε ένα έργο που ελέγχεται από το Git:

Εξατομικευμένη προτροπή `bash`.
Figure 161. Εξατομικευμένη προτροπή bash.

Και τα δύο αυτά σενάρια έρχονται με χρήσιμη τεκμηρίωση· περισσότερες πληροφορίες μπορεί να βρει κανείς στα περιεχόμενα των git-completion.bash και git-prompt.sh.