SORU
12 Ocak 2012, PERŞEMBE


Nasıl geldiği/BAŞ koymak mı?

Bir şube kökenli ref izlemek için hazırladım. git checkout <branchname> anahtarlar için şube, ve bir git status göster bana ne kadar ileride veya geride benim dalıdır kökenli, ama şaşırdım O origin/HEAD. origin/master origin/<branchname>

Yani benim soru, hangi şartlar altında başlangıç/HEAD taşınan mı?

DÜZENLEME:

İlgili cevaplar için teşekkür ederiznasılkökeni/hareket ettirmek için, ama ilgilendiğim şey "organik" bir hareket, bence açıkça bunu söylüyor.

Dalları geçtiğimde örneğin, gıt KAFA şubeden noktasıdır bakıyorum, kökeni/HEAD aynı şekilde hareket etmeyen çok şaşırdım.

CEVAP
12 Ocak 2012, PERŞEMBE


Sorunuzu yanlış anlaşma gösteren ilk not.kökeni/HEAD uzaktan kumandanın varsayılan dalını temsil ederkökeni arıyorsun , uzak depo, yani BAŞI. Repo şubeleri geçtiğinizde, bu etkileyici değilsin. Aynı şey için uzaktan dalları; olabilir master origin/master repo, nerede origin/master temsil eden bir yerel kopyasını master şube uzak depo.

kökeni KAFASI sadece eğer değişecek ya da bir başkası gerçekten uzak depodaki değişiklikleritemelde asla olmaması gereken, varsayılan şube ortak bir repo sabit, kararlı dalda kalmak istiyorsanız (muhtemelen master).kökeni/HEAD yerel bir ref uzak havuz BAŞI yerel bir kopyasını temsil ediyor.(Tam adı/uzaktan kumanda/menşe/BAŞ hakem.)

Sanırım yukarıdaki cevap ne gerçekten bilmek istiyordu, ama devam edin ve cevaplayın soruyu açıkça sordu... kökeni/HEAD set otomatik olarak klon bir depo ve bu konuda. Bu tuhaf biçimdedeğileğer el ile değiştirmek git remote update - değişecek tek yolu benim inandığım gibi komutları tarafından ayarlanır. (Değişikliği ile farklı bir şube üzerine yani; belli ki o/uzaktan güncelleme/Çek, yakala da olabilecek bu şube değişirse değişir, işaret tamamlama.)


EditSorun aşağıda ele giderilmiştirGit 1.8.4.3; this update bkz.


Küçük bir uyarı, ama var. KAFA sembolik bir hakem, doğrudan bir dal yerine işaret tamamlama, ama git remote aktarım protokolleri tek rapor başvuruları için tamamlar. O yüzden Git KAFA ve tüm diğer hakemler tarafından işaret tamamlama ve SHA1 bilir; o zaman aynı işaret eden bir şube tamamlama bularak KAFA değerini anlamak için var. Bu iki dal noktası yok olursa, ne olduğu belirsiz anlamına gelir. (Mümkünse master alır, geri alfabetik olarak ilk düştüğünde ben de inanıyorum.) Bu git remote show origin çıkış rapor görürsünüz.

$ git remote show origin
* remote origin
  Fetch URL: ...
  Push  URL: ...
  HEAD branch (remote HEAD is ambiguous, may be one of the following):
    foo
    master

BAŞ kavramının bu şekilde yazdırıldıysa şeyler uzaktan değişirse değişir, ancak garip bir şekilde, (eğer foo kaldırılırsa gibi), aslında refs/remotes/origin/HEAD güncelleme değil. Bu gerçekten garip bir duruma yol açabilir. Yukarıdaki örnekte kökeni/HEAD aslında foo işaret etti, ve orijinali foo şube daha sonra kaldırıldığını söylüyor. O zaman bunu yapabiliriz:

$ git remote show origin
...
HEAD branch: master
$ git symbolic-ref refs/remotes/origin/HEAD
refs/remotes/origin/foo
$ git remote update --prune origin
Fetching origin
 x [deleted]         (none)     -> origin/foo
   (refs/remotes/origin/HEAD has become dangling)

Uzaktan Haritayı KAFA bilmesine rağmen ana kadar, hiçbir şey güncelleme değil. Bayat foo şube doğru budanmış, ve KAFASI sallanan (varolmayan bir şube için işaret), ve olurhalausta nokta için güncelleme yok. Eğer bunu düzeltmek istiyorsan eğer, otomatik olarak yukarıdaki gibi kökeni KAFASI belirler ve aslında kökeni/HEAD uygun uzaktan şubesine noktası için ayarlar git remote set-head origin -a kullanın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Git

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006
  • karneson

    karneson

    23 Temmuz 2006
  • RocketJump

    RocketJump

    22 ŞUBAT 2006