Γιατί είναι «προέλευσης / HEAD» εμφανίζεται όταν τρέχει «git -r υποκατάστημα»;

ψήφοι
131

Όταν τρέχετε git branch -rγιατί οι πυρκαγιές δεν αναφέρει origin/HEAD; Για παράδειγμα, υπάρχει ένα απομακρυσμένο repo στο GitHub, ας πούμε, με δύο κλάδους: πλοίαρχος και φοβερό-χαρακτηριστικό γνώρισμα. Αν κάνω git cloneγια να το αρπάξει και στη συνέχεια να πάμε σε νέο κατάλογο μου και να απαριθμήσει τα κλαδιά, βλέπω αυτό:

$ git branch -r
origin/HEAD
origin/master
origin/awesome-feature

Ή ό, τι σειρά θα ήταν το (άλφα; Είμαι απομίμηση αυτό το παράδειγμα για να κρατήσει την ταυτότητα ενός αθώου repo μυστικό). Έτσι ποια είναι η HEADεπιχείρηση; Είναι αυτό που ο τελευταίος που θα pushείχε τους HEADστραμμένο προς όταν έσπρωξε; Δεν θα ότι είναι πάντα ό, τι ήταν αυτοί pushed; HEADs μετακινηθείτε ... γιατί με νοιάζει τι κάποιος HEADεπισήμανε σε άλλο μηχάνημα;

Είμαι απλά να πάρει μια λαβή για απομακρυσμένη παρακολούθηση και τέτοια, έτσι αυτό είναι μια παρατεταμένη σύγχυση. Ευχαριστώ!

EDIT: Είχα την εντύπωση ότι αφιερωμένο εξ αποστάσεως repos (όπως το GitHub, όπου κανείς δεν θα ssh και να εργαστούν σε αυτόν τον κώδικα, αλλά μόνο να τραβήξει ή ώθησης, κλπ) δεν πρέπει και δεν έχουν HEAD, διότι δεν υπήρχε, κατά βάση, δεν αντίγραφο εργασίας. Οχι τόσο?

Δημοσιεύθηκε 09/12/2008 στις 22:36
πηγή χρήστη
Σε άλλες γλώσσες...                            


7 απαντήσεις

ψήφοι
113

@robinst είναι σωστή.

Σε git, μπορείτε να επιλέξετε ποιο υποκατάστημα ελέγχεται από προεπιλογή (δηλαδή όταν κλωνοποίηση). Από προεπιλογή, origin/HEADθα επισημάνω σε αυτό.

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

git remote set-head origin trunk

ή να το διαγράψετε εντελώς μέσω

git remote set-head origin -d

Παράδειγμα . Κοιτάξτε αναπτυσσόμενο των «Υποκαταστήματα Switch». trunkελέγχεται, έτσι origin/HEADακολουθεί trunk.

Απαντήθηκε 27/07/2011 στις 03:14
πηγή χρήστη

ψήφοι
50

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

Κανονικά, HEAD σημεία για να ελέγξουν, και ότι είναι ο κλάδος που ελέγχεται από όταν οι άνθρωποι κλωνοποίηση του αποθετηρίου. Ρύθμιση σε άλλο κλάδο (με επεξεργασία HEAD στα γυμνά αποθετήριο) αποτελέσματα στο υποκατάστημα αυτό που ελέγχεται έξω σε κλώνο.

Απαντήθηκε 21/05/2010 στις 16:08
πηγή χρήστη

ψήφοι
22

Είχα την εντύπωση ότι αφιερωμένο εξ αποστάσεως repos (όπως το GitHub, όπου κανείς δεν θα ssh και να εργαστούν σε αυτόν τον κώδικα, αλλά μόνο να τραβήξει ή ώθησης, κλπ) δεν και δεν θα πρέπει να έχουν HEAD, διότι δεν υπήρχε, ουσιαστικά, δεν εργασίας αντίγραφο. Οχι τόσο?

Είχα ακριβώς την ίδια εντύπωση όπως είπατε.

Και εγώ ακόμα δεν μπορεί να διαγράψει αυτό το υποκατάστημα προέλευσης / HEAD απομακρυσμένης παρακολούθησης κλωνοποιηθεί από GitHub με τον τρόπο

git branch -d -r origin/HEAD

Αυτό δεν είχε καμία επίδραση.

Μπορεί κάποιος να μου πει πώς μπορώ να διαγράψετε αυτό το υποκατάστημα προέλευσης / HEAD απομακρυσμένης παρακολούθησης;

εκσυγχρονίζω

Αν και δεν είχα βρεθεί γιατί υπάρχει ένας προέλευσης / HEAD δημιουργείται όταν κλώνος από το GitHub, να βρω έναν τρόπο να το διαγράψετε.

Η νέα έκδοση του git παρέχουν

git remote set-head <name> -d

για να διαγράψετε τα άχρηστα HEAD δείκτη του κλάδου εξ αποστάσεως παρακολούθησης.

Και μπορούμε επίσης να αλλάξετε το βουβό προεπιλεγμένο όνομα «καταγωγή» σε ό, τι θέλουμε, χρησιμοποιώντας

git remote rename origin <new_name>

Η ελπίδα αυτή μπορεί να βοηθήσει. :)

Απαντήθηκε 30/07/2009 στις 11:14
πηγή χρήστη

ψήφοι
13

Έχεις δίκιο ότι πιέζει για να αφιερωμένη εξ αποστάσεως repos λειτουργεί πολύ καλύτερα όταν είναι «γυμνά», δηλαδή, όταν δεν έχουν καταλόγους εργασίας. Αρχιτεκτονική Git έχει σχεδιαστεί για την ενημέρωση με μπαλώματα ή pull( fetch), η οποία έχει νόημα σε ένα κατανεμημένο VCS. Καθώς τα docs πω κάπου, ωθώντας σε έναν κλάδο που σήμερα ελέγχεται από μπορεί να οδηγήσει σε «μη αναμενόμενα αποτελέσματα» .

Το κεφάλι είναι μέρος των απαιτήσεων για μια έγκυρη αποθετήριο. Git αποθετήριο Διάταξη λέει, εν μέρει:

HEAD

A symref (see glossary) to the refs/heads/ namespace describing the currently active  
branch. It does not mean much if the repository is not associated with any working tree  
(i.e. a bare repository), but a valid git repository must have the HEAD file; some  
porcelains may use it to guess the designated "default" branch of the repository  
(usually master). It is legal if the named branch name does not (yet) exist.

Έτσι θα πάμε να δούμε HEAD ως μέρος του καταλόγου καταστημάτων, ακόμη και αν «αυτό δεν σημαίνει πολλά ...»

Απαντήθηκε 10/12/2008 στις 19:27
πηγή χρήστη

ψήφοι
3

Αν «καταγωγή» είναι μια απομακρυσμένη αποθήκη, στη συνέχεια, προέλευσης / HEAD προσδιορίζει την προεπιλεγμένη υποκατάστημα σε αυτό το απομακρυσμένο αποθετήριο.

Παράδειγμα:

$ git remote show
origin
$ git remote show origin
* remote origin
  Fetch URL: git@github.com:walkerh/pipe-o-matic.git
  Push  URL: git@github.com:walkerh/pipe-o-matic.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)

Σημειώστε τη γραμμή που λέει «HEAD υποκατάστημα: master». Αυτό είναι όπου η απομακρυσμένη αποθήκη επιτρέπει στους πελάτες γνωρίζουν ποια υποκατάστημα στο ταμείο από προεπιλογή.

Απαντήθηκε 07/05/2012 στις 23:53
πηγή χρήστη

ψήφοι
2

Υπάρχει πάντα ένα κεφάλι που δείχνει προς το παρόν ελέγχεται από υποκατάστημα στο τηλεχειριστήριο repo (που μπορεί ή δεν μπορεί να είναι master). Ακόμα και απομακρυσμένες αποθήκες έχουν τρέχουσα κλάδους. Συνήθως είναι master, και από την κορυφή του κεφαλιού μου, δεν μπορώ να σκεφτώ κανένα λόγο για τον οποίο κάποιος θα θέλετε να το αλλάξετε, αλλά μπορεί να αλλάξει.

Απαντήθηκε 10/12/2008 στις 01:43
πηγή χρήστη

ψήφοι
-8

Η εικασία μου είναι ότι κάποιος έσπρωξε ένα κλάδο και κάλεσε το ΚΕΦΑΛΙ:

git push origin HEAD
Απαντήθηκε 10/12/2008 στις 00:30
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more