GitHub'da origin ve upstream arasındaki fark nedir?


Yanıtlar:


804

Bu, GitHub çatalları bağlamında anlaşılmalıdır (bu çatalı yerel olarak klonlamadan önce GitHub deposunu GitHub'a kopyaladığınız yer).

  • upstreamgenellikle çatalladığınız orijinal repo anlamına gelir
    ( daha fazla terim için " downstream" ve " upstream" nin tanımı için de bakınız upstream)
  • origin sizin çatalınız: GitHub'daki kendi repo, GitHub'ın orijinal repo klonu

GitHub sayfasından:

Repo klonlandığında, originGitHub'daki çatalınıza işaret eden varsayılan bir uzaktan kumandaya sahiptir , çatallandığı orijinal repoyu değil.
Orijinal repoyu takip etmek için adlı başka bir uzaktan kumanda eklemeniz gerekirupstream

git remote add upstream git://github.com/<aUser>/<aRepo.git>

( aUser/aRepoçatalla doldurduğunuz orijinal içerik oluşturucu ve depo referansıyla)

Orijinal repodan almakupstream için kullanacaksınız (yerel kopyanızı katkıda bulunmak istediğiniz projeyle senkronize tutmak için).

git fetch upstream

( git fetchtek başına originvarsayılan olarak getirilir, bu da burada gerekli değildir)

Kendi deponuza katkıda bulunabileceğiniz originiçin çekme ve itme yöntemini kullanacaksınız .

git pull
git push

(yine parametresiz, varsayılan olarak 'origin' kullanılır)

Çekme talebindeupstream bulunarak repoya geri döneceksiniz .

çatal ve yukarı akış


11
Ayrıca upstreamgenel olarak ne olduğunu
— bilmenize

2
@MaxRydahlAndersen doğru, ama Git'i sarıcı olmadan kullanmayı seviyorum, bu yüzden şimdilik bu konvansiyonu (yukarı akış ve orijin) koruyacağım.
— VonC

22
Şimdiye kadar gördüğüm çatalların nasıl çalıştığına dair en iyi açıklama. Sen benim oyumu al.
— CodeChimp

9
Görsel üzerinde harika bir çalışma. Çok basit ileri ve anlaşılır cevap. Tam da aradığım şey buydu.
— tayopi

1
@ iamrudra git remote -v, başlangıç ​​ve yukarı akış için aynı url'yi gösteriyorsa, evet, aynı uzak repo'ya geçiyorsunuz.
— VonC
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.