GitHub'da boş dal oluşturun


115

Adlı yeni bir GitHub dalı oluşturmak istiyorum release.

Bu şubenin boş olması gerekiyor ! Ancak, x kaydetme içeren mevcut bir dal var ve onun commit geçmişine sahip olmak istemiyorum.

Bulduğum tek yöntem yerel bir --orphan şube oluşturmak .



1
Bunu neden yapmak istiyorsun? Boş kümeye "Fred" diyebilirsiniz, ancak yine de boş kümedir.
msw

Bunu neden yapmak istediğiniz hakkında bize daha fazla bilgi verirseniz, iyi yanıtlar bulmamıza yardımcı olabilir.
willoller

Git ile yapacağınız her şey, siz onu GitHub sunucusuna aktarana kadar yerel olacaktır git push origin _branch_.
Joe

Yanıtlar:


239

--orphanSeçeneğin nesi var ? Boş ve geçmişi olmayan bir şube istiyorsanız, gitmenin yolu budur ...

git checkout --orphan empty-branch

Ardından, hazırlık alanında sahip olacağınız tüm dosyaları kaldırabilirsiniz (böylece taahhüt altına alınmazlar):

git rm -rf .

Bu noktada makinenizde boş bir dal var.

GitHub'a (veya başka bir Git deposuna) göndermeden önce, boş bir dalı itemeyeceğiniz için, üzerinde herhangi bir içerik olmasa bile (yani boş kaydetme) en az bir işlemeye ihtiyacınız olacaktır.

git commit --allow-empty -m "root commit"

Son olarak, uzaktan kumandaya itin ve bir bira kırın

git push origin empty-branch

3
Merhaba, boş dal github deposu oluşturduktan sonra başka bir daldan pull-request oluşturmaya çalıştığımda herhangi bir dosya farkı göstermiyor. Bunu nasıl çözeceğimi bana söyleyebilir misin?
Raghavendra S

@RaghavendraS Cevabımı gör. Ben de aynı sorunu yaşadım.
Greg M. Krsak

1
Belki de bazı insanlar, git add .tüm dosyaları kaldırdıktan sonra ve taahhütte bulunmadan önce bir adım eksik olduğu için bu kabul edilen cevapla ilgili bir sorun yaşıyor olabilir?
SCoyle

13

--orphan yerel olarak boş bir dal oluşturmak için iyidir, ancak onu itmek veya diğer dallarla etkileşim kurmak için bir kesinleştirme yapmanız gerekir.

Yetim bir şubede yeni bir taahhüt oluşturmak iyi bir fikir değildir çünkü diğer şubelerle etkileşime geçemezsiniz. Yani

git checkout --orphan test
git commit --allow-empty -m "init test branch"
git merge master
fatal: refusing to merge unrelated histories

Bunun yerine, master'ın ilk commitinden yeni bir dal oluşturmayı tercih etmelisiniz. Kayıt boş değilse, @houtanb tarafından açıklandığı gibi, ilkinden önce boş bir işlem ekleyebilirsiniz.


5

Ayrıca talimatları izleyebilirsiniz burada boş senin kökünde taahhüt oluşturmak için masterşube. Ardından release, bu boş kök işlemenin olduğu dalınızı oluşturun.


2

Kabul edilen cevap beni bazı sorunlara götürdü , ben de şunu yaptım:

$ git branch
* staging
$ git branch master c74d99cf46f6ed23e742f2617e9908294b4a608b
$ git checkout master
Switched to branch 'master'

Ve birleştirme / çekme isteği sorunları olmadan istediğimi aldım. Ben sadece benim ikinci dalı oluşturmak için taahhüt bir temel almak zorunda kaldı dan.


Şubenizin temel yürütmesi varsa, tanım gereği bu boş bir dal değildir . Yetim şube oluştururken yaşadığınız problemler nelerdir?
C.Augusto Proiete
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.