GitHub'daki kendi deponuzu nasıl çatallıyorsunuz?


164

GitHub'da halka açık bir depom var. Çoğaltmak / kopyalamak ve bu depoya dayalı yeni bir proje üzerinde çalışmak istiyorum, ancak şimdi nasıl olduğunu etkilemek istemiyorum. GitHub UI kullanarak çatallamayı denedim ama hiçbir şey yapmadı.


4
Tam olarak ne elde etmeye çalışıyorsunuz? Belki sadece dallayarak çözebilirsin?
Artefact2

4
Projenin bir kopyasını almak ve orijinal projeyi etkilemeden başka bir şey yapmak için bu projeyi genişletmek istiyorum. Öyleydi. Herhangi bir yol, çözüldü.
WowBow

1
@ Artefact2 .. Üzgünüm, mcepl tarafından çözüm ihtiyacımı çözdü düşündüm ama, olmadı. Projeyi 'git clone' kullanarak klonladıktan sonra, orijinal repoya değil, oluşturduğum github'da yeni bir repoya işaret etmek istiyorum. Bunu nasıl başarabilirim?
WowBow

1
@ Artefact2 Sorularımı aldın mı?
WowBow

1
Yeni bir repo oluşturmaya kıyasla çatalın yararı, grafiklerin ve ağ geçmişinin birbirine bağlı olmasıdır. Yazık ki Github buna izin vermiyor.
kenchew

Yanıtlar:


205

Kendi deponuzu çatallayabileceğini sanmıyorum.
Klonlayın ve yeni bir repoya itin iyi ama yapmanız gerekenler:

git clone https://github.com/userName/Repo New_Repo
cd New_Repo
git remote set-url origin https://github.com/userName/New_Repo
git remote add upstream https://github.com/userName/Repo
git push origin master
git push --all

(bakınız git push)

" GitHub'da kendi projenizi çatallayın " bölümünde açıklanan tüm işlemleri görün .


Altı yıl sonra (2016), artık GitHub dahil olmak üzere başka bir kaynaktan repo almanıza izin veren GitHub ithalatçınız var.
Bkz. " GitHub İçe Aktarıcı ile bir havuzu içe aktarma "

https://help.github.com/assets/images/help/importer/import-repository.png

narf sitesindeki yanıt (upvoted) da bu süreci açıklamaktadır.

Bu, GitHub URL'sini kullanarak yeni bir havuz oluşturmanıza ve eskisinin tüm geçmişini yenisine aktarmanıza olanak tanır.

Tekrar: ne elde edersiniz, gerçek bir çatal değil, bir kopyadır: yeni repodan eskisine çekme talebi yapamazsınız.

Belirtildiği gibi tekrar (bis), yorum olarak ile mpersico, bu olmayan bir DOĞRU ÇATAL.

Başkalarının çatallanmasını ve PR yapma erişimi olmasını istediğim açık kaynaklı bir proje için kanonik kaynak repo olan bir foomum varsa, o repoda çalışmak istemiyorum, vermek için kullanabileceğim bir çatal istiyorum projeme karşı uygun halkla ilişkiler.
Bunu GitHub'da ikinci bir hesap oluşturup buna yönelterek çözdüm.


Teşekkürler @VonC. Bence config dosyasını düzenlemekten bahsetmeyi unuttun.
WowBow

1
.Git / config hakkında konuşuyordum. Başlangıç ​​URL'sini değiştirmediğiniz sürece, "git remote add ...." dediğinizde, başlangıç ​​adı zaten var olduğu için sizi reddeder. Ama ben yapılandırma dosyasındaki url değiştirdikten sonra iyi çalışıyor. Bana işaret ettiğin makale bunu gösteriyor.
WowBow

7
@WowBow remotezaten varsa, bir yapın git remote set-url origin https://github.com/userName/New_Repo. Bu .git/configdosyayı sizin için değiştirir . Bkz. Git-scm.com/docs/git-remote
VonC

1
@aus bekleniyor, yukarı akıştan getirmeniz için. Bkz. Stackoverflow.com/a/33360766/6309
VonC

1
Yine de aynı organizasyonda repodan çatal bırakmaya izin verilmesi gerektiğini hissediyorum. Herkese özgü merkezi bir depo varsa ve her zaman ondan güncellemeler almak istiyorsanız ve aynı zamanda çatallı kopyanızda ihtiyaçlarınıza göre özel değişiklikler yaparsanız ne olur?
Prachi

107

GitHub web sitesinden 30 saniye içinde bunu yapmanın kolay ve kolay bir yolu:

  1. Repo'nuzun URL'sini kopyalayın. Ör:https://github.com/YourName/YourOldRepo (ipucu: deponuzun github'daki ana sayfasına baktığınızda URL.
  2. +Sağ üst köşedeki simgeyi tıklayın .
    https://i.stack.imgur.com/9zJgo.png
  3. "Havuzu içe aktar" ı seçin.
  4. "Eski URL" yi istediği yere, 1. adımda kopyaladığınız URL'yi yapıştırın
    https://i.stack.imgur.com/vgWd3.png
  5. Yeni deponuzun adını girin ve tıklayın Begin Import .
  6. Bu kadar! Artık tüm taahhüt geçmişi ve şubeleriyle birlikte tam repo kopyası var!

Sınırlamalar: Aslında gerçek bir çatal değil. Reponun bir kopyası. Çekme isteklerinin ileri geri yapılmasına izin vermez.


4
GitHub İthalatçısı'nı (2016'da piyasaya sürüldü) eski 2010 cevabımda unuttum: Bu araca ve cevabınıza bir referans ekledim.
VonC



4

Sadece klonlayın, yeni bir boş repo oluşturun ve itin.


1
Teşekkürler. Çok düşünüyordum.
WowBow

Yerel makineme klonladım ve boş bir repo oluşturdum ama git orijin gitmeye çalıştığımda github.com/userName/New_Repo.git .. uzak kökeni zaten var diyor. Bunu nasıl çözmeliyim?
WowBow

Ve şimdi ittiğimde orijinal repo değişiyor.
WowBow

Bana yeni repoya nasıl zorlanacağımı söyleyebilir misiniz? Ben klon ve yeni repo oluşturma yaptım ama yeni repo itmek olamazdı.
WowBow

5
Uzaktan kumandaları değiştirmeniz gerekiyor. Aksi takdirde, aynı yere itmeye çalışacaktır. git remote rm originardındangit remote add origin URL-to-new-repository
wadesworld

1

"Bir havuzu çoğaltmak" için bu resmi talimatları izledim ve işe yaramış gibi görünüyordu.

https://help.github.com/articles/duplicating-a-repository/

Bir havuzun çatalsız kopyasını oluşturmak için, orijinal depoya karşı özel bir klon komutu çalıştırmanız ve yenisine ayna aktarmanız gerekir. Bu, yalnızca GitHub'da barındırılanlarla değil, herhangi bir git deposuyla çalışır.


1

Kabul edilen VonC çözümü maalesef benim için işe yaramadı

uzak: Havuz bulunamadı

Ne işe yaradı şuydu:

  1. Github'da yeni bir _popo oluştur
  2. git clone Instagram Hesabındaki Resim ve Videoları new_repo
  3. cd new_repo
  4. git remote add upream Instagram Hesabındaki Resim ve Videoları old_repo.git
  5. git yukarı akış yukarı çekme ustası
  6. git push origin master

Yukarıdakilerin hepsini buradan aldım .


1

GitHub kullanan teknoloji dışı meraklılar için, yukarıdaki diğer harika cevaplara alternatif olarak basit bir çözüm. İhtiyacınız olan sadece bir GitHub Masaüstü uygulamasıdır.

  1. Tarayıcıdan kendi proje deponuzu açın ve zip olarak indirin, örn your-project-master.zip.
  2. Sıkıştırın ve yeni repo olarak yeniden adlandırın.
  3. GitHub Desktop'ı açın ve sıkıştırılmamış yerel yolunuza yeni repo'ya göz atarak yeni repo'nuzu ekleyin. resim açıklamasını buraya girin
  4. Yayınla düğmesini tıklayarak github'ınızda yayınlayın. Adı ve açıklamayı eklemeyi unutmayın :)



-1

Yeni bir repo oluşturduğunuzda, repo .git url'si ile başka bir repo'dan içe aktarabilirsiniz. Beni 30 seconde aldı.

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.