Mengapa "asal/KEPALA" yang ditunjukkan ketika berjalan "git branch -r"?

Ketika anda menjalankan git branch -rmengapa kebakaran apakah itu daftarasal/KEPALA? Misalnya, ada's remote repo di GitHub, mengatakan, dengan dua cabang: guru dan mengagumkan-fitur. Jika saya melakukangit clone` untuk mengambil itu dan kemudian masuk ke direktori baru dan daftar cabang-cabang, aku melihat ini:

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

Atau apapun pesanan akan di (alpha? I'm berpura-contoh ini untuk menjaga identitas yang tidak bersalah repo rahasia). Jadi apa yang's KEPALA bisnis? Itu adalah apa yang orang terakhir untuk mendorong mereka KEPALA menunjuk pada ketika mereka didorong? Won't yang selalu menjadi apa pun itu mereka mendorong indonesia?KEPALA bergerak... mengapa saya harus peduli apa yang orang's KEPALA menunjuk pada mesin lain?

I'm hanya mendapatkan pegangan pada remote dan pelacakan tersebut, jadi ini adalah salah satu berlama-lama kebingungan. Terima kasih!!!

EDIT: aku berada di bawah kesan bahwa didedikasikan remote repo (seperti GitHub di mana tidak ada yang akan ssh dan bekerja pada kode tersebut, tetapi hanya menarik atau mendorong, dll) didn't dan seharusnya't memiliki KEPALA karena ada, pada dasarnya, tidak ada kerja copy. Tidak begitu?

Mengomentari pertanyaan (1)
Larutan

@robinst adalah benar.

Di git, anda dapat memilih cabang adalah memeriksa secara default (yaitu ketika anda clone). Secara default, asal/KEPALA akan titik itu.

Di GitHub, Anda dapat mengubah ini dalam pengaturan Admin untuk anda GitHub repo. Anda juga dapat melakukan ini dari command-line melalui

git remote set-head origin trunk

atau menghapusnya sama sekali melalui

git remote set-head origin -d

Contoh. Melihat 'Beralih Cabang' drop-down. batang dicentang, jadi asal/KEPALA mengikuti batang.

Komentar (1)

Alasannya telanjang repositori dapat memiliki KEPALA, adalah bahwa karena hal ini menentukan cabang yang awalnya memeriksa setelah tiruan dari repositori.

Biasanya, KEPALA poin untuk menguasai, dan itu adalah cabang yang memeriksa ketika orang-orang clone repository. Pengaturan itu untuk cabang lain (dengan mengedit KEPALA di bare repository) hasil di cabang itu sedang diperiksa di clone.

Komentar (4)

aku berada di bawah kesan bahwa didedikasikan remote repo (seperti GitHub di mana tidak ada yang akan ssh dan bekerja pada kode itu, tapi hanya menarik atau mendorong, dll) tidak't dan seharusnya't memiliki KEPALA karena itu, pada dasarnya, tidak ada copy pekerjaan. Tidak begitu?

Aku pasti kesan yang sama seperti yang anda katakan.

Dan saya bahkan tidak dapat menghapus itu asal/KEPALA remote-pelacakan cabang clone dari github dengan melakukan

git branch -d -r origin/HEAD

Ini tidak memiliki efek.

Dapatkah seseorang memberitahu saya bagaimana saya dapat menghapus bahwa asal/KEPALA remote-cabang pelacakan?

update

Meskipun saya tidak menemukan mengapa ada asal/KEPALA dibuat ketika clone dari github, saya menemukan cara untuk menghapus itu.

Versi baru dari git memberikan

git remote set-head  -d

untuk menghapus berguna KEPALA pointer dari jarak jauh-melacak cabang.

Dan kita juga bisa mengubah bodoh default nama 'asal' untuk apa pun yang kita inginkan dengan menggunakan

git remote rename origin 

Semoga ini dapat membantu. :)

Komentar (2)

Anda're tepat yang mendorong untuk didedikasikan remote repos bekerja jauh lebih baik ketika mereka 'telanjang', yaitu, ketika mereka don't memiliki direktori kerja. Git's arsitektur ini dirancang untuk memperbarui dengan patch atau menarik (ambil), yang masuk akal dalam distributed VCS. Sebagai docs mengatakan di suatu tempat, mendorong ke cabang yang saat ini memeriksa dapat mengakibatkan "hasil yang tak terduga".

KEPALA adalah bagian dari persyaratan untuk repositori berlaku. Repositori Git tata Letak mengatakan, di bagian:

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.

Jadi anda'kembali akan melihat KEPALA sebagai bagian dari daftar cabang, bahkan jika "itu tidak berarti banyak..."

Komentar (3)

Jika "asal" adalah remote repositori, kemudian asal/KEPALA mengidentifikasi cabang default pada repositori jauh.

Contoh:

$ 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)

Perhatikan baris yang mengatakan "KEPALA cabang: master". Ini adalah di mana repositori jauh yang memungkinkan klien-klien tahu yang cabang ke checkout secara default.

Komentar (0)

Ada's selalu KEPALA yang poin untuk saat ini memeriksa cabang pada remote repo (yang mungkin atau mungkin tidak menjadi guru). Bahkan remote repositori ini mempunyai cabang-cabang. Biasanya itu adalah master, dan dari atas kepala saya, saya bisa't memikirkan alasan mengapa seseorang ingin mengubah itu, tetapi hal ini dapat berubah.

Komentar (2)

Dugaan saya adalah bahwa seseorang mendorong cabang dan disebut itu KEPALA:

git push origin HEAD
Komentar (3)