Git başka bir depodan dal mı çekiyor?


90

Github'da bir deponun klonu olan yerel bir git depom var. Birisi depoyu çatalladı ve yeni bir depodaki yeni bir dalda değişiklikler yaptı. Bu yeni dalı depoma taşımak istiyorum (yerel olarak ana ile birleştirmeden önce üzerinde çalışmak için).

Yeni bir dal oluşturmayı ve ardından çatallı depodan çekmeyi denedim, ancak yeni dalın ana dalın bir kopyası olduğu ve yerel dosya değişikliklerinin olduğu için şikayet ediyor, bu yüzden diyor

error: Your local changes to the following files would be overwritten by merge.

Öyleyse diğer depodaki dalı yerel depomdaki yeni bir şubeye nasıl çekebilirim?

Umarım bu mantıklıdır. Değilse, bu benim depom: https://github.com/MatthewLM/cbitcoin

Gördüğünüz gibi, birisi "linuxBuild" şubesiyle yeni bir depo oluşturdu: https://github.com/austonst/cbitcoin/tree/linuxBuild

Bu şubeyi MatthewLM / cbitcoin için yerel depomda istiyorum.

Bunu nasıl yapabilirim?

Yanıtlar:


161

git statusYerel deponuzda hiç aşamalı değişiklik olmadığını gösterdiğinden emin olmanız gerekir .
Bunu önce yerel değişikliklerinizi saklayarak ve daha sonra o dalı çekerek yapabilirsiniz. Daha sonra zulanızı uygulayabilirsiniz.


Yerel deponuzda çatalın dal yapısını yeniden oluşturmak istiyorsanız, aşağıdakileri yapabilirsiniz:

git remote add fork <url of fork>
git fetch fork
git checkout -b fork_branch fork/<branch>

Bu, yerel şube yaratacak fork_branchgibi aynı geçmişe sahip <branch>çatalı, yani fork_branchbir dala ayrılacak senin çatal yapar. Ek olarak, yerel şubeniz artık çataldaki o dalı izleyecek, böylece çatalda yapılan yeni değişiklikleri kolayca çekebilirsiniz.master<branch>

Bence çalışma kopyanızın herhangi bir değişiklik içermediğinden emin olmanız gerekir.


Tamam teşekkürler. Bu, yerel değişikliklerimi ve taahhütlerin çataldan şubede bulunmamasını isteseydim harika olurdu. Peki ya yeni dalın tam olarak fork deposundaki gibi olmasını istersem? Bu, bu yeni dal için çatal oluştuktan sonra kendi depomdan herhangi bir kaydetmeyi de içerir. Böylece dal, çatallı bir depodan ziyade kendi depomda yapılmış gibi olur.
Matthew Mitchell

Cevabınız, yapmam gerekenler için kabul edilebilir bir çözüm, ancak yeni bir şubeyi bir depoya çekebilseydim, bunu daha açık bulabilirim. Başkalarının ne dediğini görmek için bir süre bekleyeceğim.
Matthew Mitchell

@MatthewMitchell: Lütfen güncellemeyi kontrol edin. Aradığınız şey bu muydu?
Daniel Hilgarth

Sonunda, onu başka bir dalla birleştirme yöntemini kullandım (sadece ana birimle birleştirdim), ancak bir dalı tam olarak başka bir depodan olduğu gibi istediğim durumda, getirmeyi deneyeceğim ve tarif ettiğiniz ödeme yöntemi. Teşekkürler.
Matthew Mitchell

Başka bir depodan başka bir şube "gh sayfalarını" taşımak için kullanılır!
Marcello de Sales

39

Uzaktan kumanda eklemeden yöntem.

git checkout --orphan fork_branch
git reset --hard
git pull <url of fork> <branch>

2
Bunun için teşekkür ederim, yer imlerine ekledim ve geri gelmeye devam ediyorum!
Shane Smiskol

2
2020 için En İyi Cevap
Diamond
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.