Ketika anda menjalankan git branch -rmengapa kebakaran apakah itu daftar
asal/KEPALA? Misalnya, ada's remote repo di GitHub, mengatakan, dengan dua cabang: guru dan mengagumkan-fitur. Jika saya melakukan
git 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?
@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
.
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.
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?
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 <name> -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 <new_name>
Semoga ini dapat membantu. :)
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..."
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: [email protected]:walkerh/pipe-o-matic.git
Push URL: [email protected]: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.
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.