10 Προηγμένες Τεχνικές Git - KDnuggets

10 Προηγμένες τεχνικές Git – KDnuggets

Κόμβος πηγής: 3083811

10 Προηγμένες τεχνικές Git
Εικόνα από τον συγγραφέα
 

Ever wonder what you could do to look like a pro in front of your manager when using Git? In this post, we’ll learn about 10 advanced Git techniques and shortcuts that will make you more efficient at versioning, maintaining, and sharing code.

You likely already know the basics of committing, pushing, pulling, and branching with Git. But there are many lesser-known commands and features that can level up your skills. After reading this, you’ll have a few slick tricks up your sleeve to impress coworkers with your Git proficiency.

Έχετε προσθέσει και δεσμεύσει τα αρχεία με αυτόν τον τρόπο πολλές φορές, αλλά τι γίνεται αν σας πω ότι μπορεί να γίνει σε μία γραμμή με τη σημαία `-am`; 

$ git add .
$ git commit -m "new project"

 

Δοκιμάστε αυτό, και θα προσθέσει τις αλλαγές του αρχείου και θα δημιουργήσει το commit χρησιμοποιώντας το μήνυμα. 

$ git commit -am "new project"

 

[master 17d7675] new project
4 files changed, 2 insertions(+), 1 deletion(-)

 

You can rename your current commit message using the `–amend` flag and write the new message. This will help you with accidental messages.

$ git commit --amend -m "Love"

 

[master 7b7f891] Love
Date: Mon Jan 22 17:57:58 2024 +0500
4 files changed, 2 insertions(+), 1 deletion(-)

 

You can include additional changes to the current commit before pushing it to the remote repository. To do so, you need to add the file changes and then commit using the `–amend` flag. To retain the previous commit message, simply use the `–no-edit` flag.

$ git add . 
$ git commit --amend --no-edit

 

[master f425059] Love
Date: Mon Jan 22 17:57:58 2024 +0500
6 files changed, 2 insertions(+), 34 deletions(-)

If you want to push a local commit and override the remote history without dealing with resolving issues, you can use the `–force` flag. However, it’s important to note that using the force flag is not recommended and should only be used when you’re absolutely sure of what you’re doing. Keep in mind that using the force flag will rewrite the remote history.

$ git push origin master --force

 

Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 357 bytes | 357.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/kingabzpro/VSCode-DataCamp.git
8f184d5..f425059  master -> master

Για να αναιρέσετε μια δέσμευση στο Git, μπορείτε να χρησιμοποιήσετε την εντολή «revert». Ωστόσο, αυτή η εντολή δεν αφαιρεί καμία δέσμευση. Αντίθετα, δημιουργεί μια νέα δέσμευση που αναιρεί τις αλλαγές που έγιναν από την αρχική δέσμευση.

We will use the `log` with `–oneline` flag to view commit history in a shorter form. 

$ git log --oneline

 

f425059 (HEAD -> master, origin/master) Love
8f184d5 first commit

 

Για να επιστρέψουμε σε μια προηγούμενη δέσμευση, χρησιμοποιούμε την εντολή `git revert` ακολουθούμενη από το αναγνωριστικό δέσμευσης. Αυτό δημιουργεί μια νέα δέσμευση με τις αλλαγές από την προηγούμενη δέσμευση.

$ git revert 8f184d5

Θέλετε να αυξήσετε την παραγωγικότητά σας στο GitHub; Με το GitHub Code Spaces, μπορείτε πλέον να επεξεργαστείτε και να εκτελέσετε τον κώδικα απευθείας στο πρόγραμμα περιήγησής σας. 

To access this feature, simply navigate to your favorite repository, press the period key (“.”) on your keyboard, and it will redirect you to the VSCode UI.

 

10 Προηγμένες τεχνικές Git
Εικόνα από τον συγγραφέα
 

You can make changes to the code and push them to your remote repository. However, if you want to run the code in the terminal, you need to run the Codespace in the cloud. The free version offers an excellent option for running your Python code in your browser. Isn’t that awesome? I just found out about it today.

 

10 Προηγμένες τεχνικές Git
Εικόνα από τον συγγραφέα

Όταν εργάζεστε σε ένα έργο, μπορείτε να προσθέσετε αρχεία σε μια περιοχή σταδιοποίησης και στη συνέχεια να τα δεσμεύσετε να αποθηκεύσουν την τρέχουσα πρόοδό σας. Ωστόσο, υπάρχει ένας άλλος τρόπος για να αποθηκεύσετε εύκολα την εργασία σας χρησιμοποιώντας την εντολή «stash». Όταν χρησιμοποιείτε το "stash", αποθηκεύετε την τρέχουσα πρόοδό σας χωρίς να την προσθέσετε στην περιοχή σταδιοποίησης ή να την δεσμεύσετε. Αυτό σας επιτρέπει να αποθηκεύσετε την πρόοδό σας και να την επαναφέρετε όποτε το χρειαστείτε.

Θα αποθηκεύσουμε την τρέχουσα πρόοδό μας παρέχοντας ένα όνομα και αποθηκεύοντάς το. 

$ git stash save new-idea

 

Saved working directory and index state On master: new-idea

 

Μπορείτε να προβάλετε τη λίστα αποθήκευσης και να σημειώσετε το αντίστοιχο ευρετήριο για να το ανακτήσετε.

$ git stash list

 

stash@{0}: On master: new-idea

 

Our stash of “new ideas” is saved at index 0. To retrieve it, use this command:

$ git stash apply 0

 

On branch master
Your branch is up to date with 'origin/master'.

You have the option to rename your default branch name to something more appropriate. In this case, we will rename “master” to “main”. 

$ git branch -M main

 

10 Προηγμένες τεχνικές Git
 

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

$ git status

 

On branch main
Your branch is up to date with 'origin/master'.

Εάν θέλετε να δείτε ένα λεπτομερές ιστορικό όλων των δεσμεύσεων που έγιναν στο τρέχον αποθετήριο, μπορείτε να χρησιμοποιήσετε την εντολή «git log». Ωστόσο, το αποτέλεσμα μπορεί να είναι δύσκολο να διαβαστεί. Για να το κάνετε πιο ευανάγνωστο, μπορείτε να χρησιμοποιήσετε τις σημαίες «γραφική παράσταση», «διακοσμήστε» και «μία γραμμή». Αυτό θα εμφανίσει τις αλλαγές που έγιναν σε πολλούς κλάδους και τον τρόπο συγχώνευσής τους.

$ git log --graph --decorate --oneline

 

10 Προηγμένες τεχνικές Git

Σε αρκετές περιπτώσεις, έχω αλλάξει σε νέο υποκατάστημα και ξέχασα το όνομα του προηγούμενου υποκαταστήματος. Κατά συνέπεια, έπρεπε να χρησιμοποιήσω την εντολή «git branch -a» για να προβάλω τη λίστα με τα ονόματα των υποκαταστημάτων. Ωστόσο, υπάρχει ένας απλούστερος τρόπος για να επιστρέψετε στον αρχικό κλάδο χρησιμοποιώντας την παύλα "-" μετά την εντολή "git checkout".

Θα δημιουργήσουμε πρώτα τον νέο κλάδο Git “neo”.

$ git branch neo

 

Θα μεταβούμε στον κλάδο “neo”.

$ git checkout neo

 

Switched to branch 'neo'

 

Για να επιστρέψουμε στον αρχικό κλάδο, θα χρησιμοποιήσουμε την ακόλουθη εντολή:

$ git checkout -

 

Switched to branch 'main'

We have learned about overriding the remote repository. Let’s learn how to override the local repository using the remote repository.

Θα χρησιμοποιήσουμε την εντολή "fetch" για να λάβουμε τις τελευταίες αλλαγές από το απομακρυσμένο αποθετήριο. 

$ git fetch origin

 

Then, we will use the ‘reset’ command with the ‘hard’ flag to override any local changes with the remote version. Please note that this will permanently discard any local changes.

$ git reset --hard origin/master

 

HEAD is now at f425059 Love

 

Εάν εξακολουθούν να υπάρχουν αρχεία χωρίς παρακολούθηση, μπορούν να αφαιρεθούν χρησιμοποιώντας την ακόλουθη εντολή:

$ git clean -df

Εμπνεύστηκα να γράψω αυτό το άρθρο αφού παρακολούθησα το α Βίντεο από το YouTube με πυροσβεστικό πλοίο. Θαυμάζω τον δημιουργό για την ικανότητά του να εξηγεί σύνθετα θέματα με απλό τρόπο. Ακολουθώντας τη μέθοδό του, έχω μάθει πολλά για τις δυνατότητες του Git.

Σε αυτό το άρθρο, καλύψαμε προηγμένες τεχνικές Git που είναι ζωτικής σημασίας για επιστήμονες δεδομένων και μηχανικούς λογισμικού που εργάζονται σε ένα έργο συνεργασίας δεδομένων. Η γνώση αυτών των τεχνικών μπορεί να σας βοηθήσει να αποφύγετε ατυχήματα και να επιλύσετε προβλήματα πολύ πιο γρήγορα.

Ελπίζω να σας φάνηκε χρήσιμο αυτό το blog. Ενημερώστε με εάν θέλετε να διαβάσετε περισσότερες αναρτήσεις με πληροφορίες μεγέθους byte σχετικά με εργαλεία που χρησιμοποιούνται συνήθως στον κόσμο της επιστήμης δεδομένων.
 
 

Αμπίντ Αλί Αουάν (@1abidaliawan) είναι πιστοποιημένος επαγγελματίας επιστήμονας δεδομένων που λατρεύει την κατασκευή μοντέλων μηχανικής μάθησης. Επί του παρόντος, εστιάζει στη δημιουργία περιεχομένου και στη σύνταξη τεχνικών ιστολογίων για τη μηχανική μάθηση και τις τεχνολογίες επιστήμης δεδομένων. Ο Abid είναι κάτοχος μεταπτυχιακού τίτλου στη Διοίκηση Τεχνολογίας και πτυχίου στη Μηχανική Τηλεπικοινωνιών. Το όραμά του είναι να δημιουργήσει ένα προϊόν τεχνητής νοημοσύνης χρησιμοποιώντας ένα νευρωνικό δίκτυο γραφημάτων για μαθητές που παλεύουν με ψυχικές ασθένειες.

Σφραγίδα ώρας:

Περισσότερα από KDnuggets