Συνεισφορὰ σὲ ἔργα Git μὲ Magit: PRs, διορθώσεις καὶ ροὴ Agit
Γρήγορος ὁδηγὸς βίντεο γιὰ συνεισφορὰ σὲ ἔργα git μὲ Magit. Παρουσιάζει σύνοψη τῶν 3 πιὸ συνηθισμένων ροῶν ἐργασίας
- Pull Requests
- Ροὴ Agit
- Διορθώσεις Git
Σημειώσεις βίντεο:
Εἰσαγωγή
Τὸ δημιουργῶ ὡς βίντεο-σεμινάριο γιὰ τὸ πῶς νὰ συνεισφέρεις στὸ bebliotheca, μία ψηφιακὴ ἀναδημιουργία τῆς Βιβλιοθήκης τῆς Κωνσταντινούπολης γιὰ νὰ φιλοξενεῖ κείμενα ποὺ θὰ βρίσκονταν ἐκεῖ κατὰ τὴν ἑλληνορωμαϊκὴ αὐτοκρατορία.
Τὰ βήματα ποὺ ἐπιδεικνύονται ἐδῶ ἰσχύουν γιὰ ὁποιοδήποτε ἔργο.
Αὐτὸς εἶναι ἕνας ὁδηγὸς βίντεο γιὰ συνεισφορὰ σὲ ἔργα git, μὲ Ἤμαξ καὶ
Magit (τὸν μαγικὸ πελάτη Git). Τὸ Magit παρέχει τὴν καλύτερη
ἐμπειρία ἐξ ὁρισμοῦ γιὰ κειμενικὴ διεπαφὴ πρὸς τὸ git, κάτι ποὺ καθιστᾶ
τὸ magit κορυφαῖο χαρακτηριστικὸ τοῦ Ἤμαξ.
Σὲ αὐτὸ τὸ βίντεο ξεκινᾶμε ἀπὸ ἕνα παράδειγμα διαμόρφωσης Ἤμαξ, προσθέτοντας θέμα καὶ ἐγκαθιστώντας Magit. Ἔπειτα βλέπουμε πῶς νὰ συνεισφέρεις σὲ ἔργα git μὲ 3 τρόπους:
- Pull Requests
- Pull Requests ροῆς Agit
- Ὑποστηρίζεται σὲ ἐγκαταστάσεις forgejo, ὅπως τὸ
codeberg
- Ὑποστηρίζεται σὲ ἐγκαταστάσεις forgejo, ὅπως τὸ
- Διορθώσεις Git
Προσωπικὰ χρησιμοποιῶ
vc, μία ἐνσωματωμένη μονάδα. Ἀλλὰ αὐτὸ γιατί ἀπολαμβάνω τὸν πειραματισμὸ καὶ τὸ νὰ γράφω δικά μου σενάρια γι’ αὐτό. Τὸ Magit κάνει ἐξ ὁρισμοῦ πολὺ περισσότερα ἀπὸ ὅσα μπορεῖ ἀκόμη καὶ ἡ ~300 γραμμῶν διαμόρφωση vc μου.
Ἀπαιτήσεις
Θὰ χρειαστεῖς τὸ ἑξῆς λογισμικὸ ἐγκατεστημένο:
Ἐπιπλέον, βεβαιώσου ὅτι ἔχεις ἤδη δημιουργήσει ζεῦγος κλειδιῶν SSH καὶ τὸ ἔχεις ρυθμίσει γιὰ τὴν ὑπηρεσία φιλοξενίας κώδικά σου.
Διαμόρφωση Ἤμαξ ποὺ θὰ χρησιμοποιήσω
Παράδειγμα ἀρχείου init.el ποὺ θὰ χρησιμοποιήσω:
- Προεπιλεγμένες τοποθεσίες γιὰ
init.el, ἀνάλογα μὲ τὸ σύστημά σου:- GNU/Linux:
~/.emacs.d/init.el - Windows:
C:\Users\<YourUsername>\.emacs.d\init.el
- GNU/Linux:
;; Init packages
(package-initialize)
;;;; Do not install keycast as well, I'm only using it to share my
;;;; keystrokes for the video.
;; (use-package keycast
;; :ensure t)
;; Set and load custom.el
(setf custom-file (locate-user-emacs-file "custom.el"))
(load custom-file 'noerror)
;; Completions
(fido-vertical-mode 1)
(electric-pair-mode 1)
;;; Theming ;;;
(column-number-mode)
(global-display-line-numbers-mode 1)
(tool-bar-mode -1)
(tooltip-mode -1)
(menu-bar-mode -1)
(blink-cursor-mode -1)
(scroll-bar-mode -1)
(set-fringe-mode -1)
;; Add transparency
(add-to-list 'default-frame-alist '(alpha-background . 85))
;; ef-themes package provides a great theme collection, made by Protesilaos.
(use-package ef-themes
:ensure t)
(defun thanos/load-theme (&optional theme)
"Disable current theme and load a new THEME.
Emacs can load multiple themes at once. With this function we make sure we only load one at a time"
(interactive)
(let ((theme (or theme (intern (completing-read "Theme: " (custom-available-themes))))))
(disable-theme (car custom-enabled-themes))
(load-theme theme t)))
(thanos/load-theme 'ef-dark)
(use-package magit
:bind ("C-x g" . magit)
;; Hook flyspell for autocorrect during commit messages.
:hook (git-commit-mode . flyspell-mode))
;; Agitjo extends Magit with a new menu for AGit-Flow operations.
(use-package agitjo
:vc (:url "https://codeberg.org/halvin/agitjo")
:ensure t)
Pull Requests
- Ἀπαιτοῦν δημιουργία λογαριασμοῦ στὴν ὑπηρεσία φιλοξενίας κώδικα ὅπου φιλοξενεῖται τὸ ἔργο. π.χ. Github ἢ Codeberg.
- Βήματα ὑποβολῆς PR
- Δημιούργησε προσωπικὸ ἀντίγραφο (fork) τοῦ ἀποθετηρίου, μέσω διεπαφῆς Ἱστοῦ.
- Κλωνοποίησε τὸ fork σου
- Καταχώρισε ἀλλαγές, συχνὰ σὲ νέο κλάδο.
- Ἀνέβασε τὶς ἀλλαγές σου στὸ fork σου
- Ὑπόβαλε ἕνα Pull Request, μέσω διεπαφῆς Ἱστοῦ.
Ἂν προτιμᾶς νὰ μὴν χρησιμοποιεῖς διεπαφὴ Ἱστοῦ, ἀλλὰ πρέπει νὰ χρησιμοποιήσεις Pull Requests, σκέψου τὸ forge.
Ροὴ Agit
Σημείωσε ὅτι ἡ ροὴ agit δὲν ὑποστηρίζεται ἀπὸ τὸ GitHub τὴ στιγμὴ δημιουργίας αὐτοῦ τοῦ βίντεο. Γιὰ νὰ χρησιμοποιήσεις ροὴ agit, θὰ χρειαστεῖς ἐγκατάσταση forgejo ὅπως τὸ Codeberg.
- Κλωνοποίησε τὸ ἀποθετήριο, μὲ ssh
- Καταχώρισε ἀλλαγές
- Ἀνέβασε
- Ἀπὸ τὸ buffer κατάστασης Magit, πάτα
# - Καθόρισε τίτλο μὲ
-t- Μπορεῖς νὰ χρησιμοποιήσεις τὸν ἴδιο τίτλο γιὰ νὰ ἀνεβάσεις τὶς ἀλλαγὲς στὸ PR.
- Ἀπὸ τὸ buffer κατάστασης Magit, πάτα
Διορθώσεις Git
- Κλωνοποίησε τὸ ἀποθετήριο.
- Καταχώρισε ἀλλαγές.
- Μορφοποίησε διορθώσεις.
$ git format-patch -{NUM} # where NUM the number of commits.
- Στεῖλε διορθώσεις ὡς συνημμένα μέσω ἠλεκτρονικοῦ ταχυδρομείου, πατώντας
C-x C-m.