Git-forklar Git-clones edirsiniz?

Mən insanların Git kodunu şişirdəcəyini söylədiyini eşidəcəyəm. Git "fork" şübhə doğurur, Git kimi "klon" və gələcək birləşmələri tərk etmək üçün bəzi (mənasız) psixoloji hazırlıq. Gitin forkası yox, sağ mı?

GitHub onlara yazışmalar qoyaraq bir-birinə çarxlar bir az real edir. Yəni, tıklama düyməsini klikləyin və ödəmə düyməsini tıkladığınızda, sistem sahibi sahibinə bir e-poçt göndərmək üçün kifayət qədər ağıllıdır. Beləliklə, bu, sahibliyi və icazəsi ətrafında bir az rəqsdir.

Xeyr, yox? GitHub'ın Git'i bu istiqamətdə uzatdığı narahatlıqlar varmı? Və ya Git funksionallığının udulmasına dair hər hansı bir şayiələr?

755
09 июня '11 в 2:45 2011-06-09 02:45 Brian tərəfindən 09.06.2011 tarixində saat 02.45-də təyin olunmuş 2011-06-09 02:45
@ 10 cavab

GitHub kontekstində Fork Git'i uzatmır.
Bu yalnız server tərəfində klonlamağa imkan verir.

Yerli iş istasyonunuzda bir GitHub deposunu klonladığınızda, açıq bir şekilde "üzv" olaraq bildirilmediğiniz sürece üst deposuna geri katlanamazsınız. Bunun səbəbi sizin klonunuzun bu layihənin ayrı bir nümunəsidir. Bir layihəyə qatqı təmin etmək istəyirsinizsə, bunu bir forkdan istifadə edə bilərsiniz:

  • Bu GitHub deposunu GitHub hesabınıza (yəni "fork" hissəsi , server yan klonu) klonlayın
  • bu github deposuna əməlləri əlavə edin (öz hesabınızın hesabında, buna görə tam hüququnuz var)
  • orijinal GitHub deposuna istənilən maraqlı məlumatı bildirin (bu, öz "GitHub" deposunda edilən dəyişikliklər nəticəsində "axtarış tələbi" nin bir hissəsidir)

GitHub əməkdaşlığını da nəzərdən keçirin .

Orijinal deposuna (yuxarı səviyyədə də adlanır) keçid saxlamaq istəyirsinizsə, bu orijinal deposuna uzaq bir keçid əlavə etməli olursunuz.
Bax: " Mənbənin mənbəyi ilə yuxarı axın arasında fərq nədir? "

2019

865
09 июня '11 в 3:37 2011-06-09 03:37 Cavab VonC tərəfindən 09.06.11 tarixində 3:37 da verilmişdir 2011-06-09 03:37

İnsanları eşitdirməyi davam kodunu şişirirəm deyirəm. Git "fork" şübhəli səslənir, git "klon" və gələcək birləşmələri tərk etmək üçün bəzi (mənasız) psixoloji hazırlıq kimi. Gedədə çəngəl yoxdur, sağ mı?

Forking hər hansı bir versiya idarəetmə sistemi tərəfindən dəstəklənən bir əmr deyil, bir konseptdir.

Dalğanın ən sadə növü dallanma ilə sinonimdir. VCS-dən asılı olmayaraq, bir şöbə yaratdığınız zaman hər şeydən önə çıxırsınız. Bu çəngəllər birləşmək üçün adətən olduqca asandır.

Bir partiyanın kodun tam surətini çıxarması və yarpağı götürdüyündən danışan çəngəl, mütləq Subversion kimi mərkəzi bir sistemdə VCS-dən kənara çıxır. Distributed VCS, Git kimi, bütün kod bazasını dallaşdırmaq və yeni bir layihəni effektiv şəkildə həyata keçirmək üçün daha yaxşı dəstək verir.

Git (GitHub) ilk növbədə reponun (yəni, onun klonlamasının) bir neçə üsulla "forkalanmasını" dəstəkləyir:

border=0
  • klon aldığınız zaman, sizin üçün origin bir uzaqlıq yaradılır
  • default olaraq, klondakı bütün şöbələr origin ekvivalentləri izləyəcəklər
  • aldığınız orijinal layihədən alınan dəyişiklikləri birləşdirmək və birləşdirmək olduqca sadədir

Git, bir şubenin qaynağına, orijinal layihədən kimsənin sizi çəkilməsini və ya dəyişiklikləri özünüzə təkrar qoymaq üçün yazma icazəsi tələb etməkdən asılı olaraq asanlıqla dəyişiklik etməsini təmin edir. GitHub sadələşdirir və standartlaşdırır.

Github ilə əlaqədar bu istiqamətdə gedən bir narahatlıq varmı? Vicdanla işlədilən funksiyanı əmələ gətirən hər hansı bir şayiə?

Heç bir qorxma yoxdur, çünki ehtimal yanlışdır. GitHub "Git fork" funksiyasını gözəl bir qrafik interfeysi və istəkləri vermək üçün standartlaşdırılmış şəkildə istifadə edərək genişləndirir, lakin Git funksiyasını əlavə etmir. Tam repo-forking konsepsiyası paylanmış versiya nəzarətində əsas səviyyədə birbaşa qoyulur. GitHub'dan istənilən vaxt imtina edə bilərsiniz və eyni zamanda "forked" olduğunuz layihələri tanıtmaq / çıxarmaq üçün davam edə bilərsiniz.

123
09 июня '11 в 18:59 2011-06-09 18:59 Cavab 09 iyun 2011-ci il saat 18 : 59-da Meagar tərəfindən verilmişdir 2011-06-09 18:59

Bəli, klon bir klondur. Bunun səbəbi , başqalarının icazəsi olmadan başqa bir nüsxəsini tıklayamadığınız oldu . Onlar sizin üçün bir surət hazırlayırlar.

Gələcəkdə, faktiki sahibiniz və ya dəyişən kimi bir plug ilə digər istifadəçilər, öz deposuna qayıda bilərlər. Alternativ olaraq, onlara "çek-istək" göndərə bilərsiniz.

74
10 июня '11 в 0:12 2011-06-10 00:12 Cavab ssapkota tərəfindən 10 İyun 10: 11-da 0:12 2011-06-10 00:12

Bu məzmunda "Plug" mənim kodumun bir surətini öz dəyişikliklərimi əlavə edə biləcəyimi deməkdir. Daha demək üçün bir şey yoxdur. Hər klon mahiyyətcə çəngəldir və orijinal dəyişiklikləri forkdan çıxarmaq üçün qərar verməzdən əvvəl.

37
09 июня '11 в 2:51 2011-06-09 02:51 Cavab Daison 9 iyun 'da verildi 2:51 2011-06-09 02:51

Klonlama, yerli kompüterdə git kitabxanasının bir nüsxəsini yaratmaqdan ibarətdir və forking, deposu başqa bir deposu klonlaşdırmaq deməkdir. Klonlama yalnız şəxsi istifadəyə görə həyata keçirilir (gələcək birləşmələr mümkün olsa da), ancaq kopyalamanız və yeni bir layihə yolunu açdığınız zaman.

25
09 июня '11 в 3:24 2011-06-09 03:24 Cavab Sam Johnson tərəfindən 09 iyun '11 'də 3:24' də verildi. 2011-06-09 03:24

Hesab edirəm ki, çəngəl başqa bir ehtiyatın surətidir, ancaq hesabınızın dəyişdirilməsi ilə. məsələn, yerli olaraq başqa bir deposu klonlayırsınızsa, uzaq obyektin qaynağı hələ klonlandığınız hesabı istifadə edir. Kodunuzu törətmək və daxil edə bilməzsiniz. Bu yalnız kodların təmiz bir kopyasıdır. Əks halda, bir deposu yaratdığınızda, hesabınızdakı github hesabınızdakı hesab ayarlarınızı yeniləyərək reponun klonlanması. Hesabınızın kontekstində sonra repo klonlama kodlarınızı düzəldə bilərsiniz.

10
04 июня '13 в 22:30 2013-06-04 22:30 cavab 04 yanvar 2013-də saat 10: 30-da Daniel Shen- ə verilir. 2013-06-04 22:30

Viking bir layihəyə qatqı verməyə qərar verərkən edilir. Tarixi jurnallarla birlikdə bütün layihənin surətini çıxaracaqsınız. Bu surət tamamilə köşkünüzdə hazırlanır və bu dəyişiklikləri ən qısa müddətdə bir transfer tələbi verirsiniz. İndi mənbənin sahibinə, çəkmək istəyinizi qəbul etmək və dəyişiklikləri mənbə koduna daxil etməkdir.

Git klonu, istifadəçilərə mənbənin surətini almaq imkanı verən faktiki əmrdir. git clone [URL] Bu, öz yerli ehtiyatınızdakı [URL] nüsxəsini yaratmalıdır.

10
11 июня '14 в 21:40 2014-06-11 21:40 Cavab verilən aliasav 11 İyun, '14 'da 21:40 2014-06-11 21:40

Serverdən kompüterinizə klonlama ilə yanaşı, dallanma da serverin özündə bir surət təşkil edir, mühüm fərq, klonlaşdığımız zaman, həqiqətən, bütün filialları, yazıları və s.

Ancaq biz çəngəl olduqda, əslində yalnız əsas şöbədə mövcud faylları alırıq, bundan başqa bir şey. Demək ki, biz digər filialları qəbul etmirik və s.

Buna görə, əgər orijinal deposuna bir şeyə birləşməlisinizsa, depolar arasında bu birləşmə və mütləq daha yüksək güzəştlər tələb edəcəkdir.

Çəngəl gitdə əmr deyil; bu, GitHub tətbiq edən bir konsepsiyadır. Unutmayın ki, Git hər hansı bir əsas nüsxə ilə sinxronizasiya etmədən peer-to-peer mühitində işləmək üçün nəzərdə tutulmuşdur. Server başqa bir node deyil, amma onu əsas nüsxə hesab edirik.

7
23 апр. Deepak GM tərəfindən 23 Apreldə cavab verildi 2015-04-23 08:51 '15 at 8:51 am 2015-04-23 08:51

"Çəngəl" nə dair bir anlaşılmazlıq var. Fiş, həqiqətən, hər bir istifadəçi üçün bir filial dəsti deyil. Çatala vurduğunuzda, həqiqətən, orijinal deposuna daşıyırsınız, çünki bu yalnız saxlama mənbəyidir.

Bunu çatala vuraraq, əməl işarəsini yazaraq cəhd edə bilərsiniz və sonra qaynaq deposuna gedərək və işləmə sənədini istifadə edərək, tövsiyənin "qaynaq" deposunda olduğunu görürsünüz.

Bu mənada bir çox məna verir, amma açıq-aşkar bir şey deyil (mən yalnız təsadüfən kəşf etmişəm).

John, SuperProject deposunu çalarkən, həqiqətən baş verən şey, "John.master", "John.new_gui_project" və s. Kimi adlar ilə çoğaltılıb.

GitHub "gizlədir" John. bizə GitHub'daki deposunun öz "surətini" verdiyini təsəvvür edir, lakin biz bunu etmirik və hətta ona ehtiyacımız yoxdur.

Beləliklə, mənim "master" filialı həqiqətən "Korporal.master" adlanır, ancaq "GitHub" istifadəçi interfeysi bunu mənə göstərmir, mənə yalnız "master" göstərir.

Bu yaxınlarda etdiyim şeylərə əsasən başlıq altında baş verdiyini düşünürəm və düşündüyünüz zaman bu, çox yaxşı bir dizayndır.

Bu səbəbdən, Microsoftun Visual Studio Team Services təkliflərinə Git fişlərini yerləşdirməsi çox asan olardı.

3
26 авг. cavab verildi Hugh 26 Avqust 2017-08-26 21:38 '17 da 21:38 2017-08-26 21:38 'də

Sadəcə,

Depoyu dağıttığınızı söyləyərkən, əsasən, GitHub hesabınızdakı GitHub ID ilə orijinal deposunun bir kopyasını yaratırsınız.

və həmçinin

Bir deposu klonladığınızı deyirsinizsə, sisteminizdə (PC / laptop) orijinal deposunun yerli bir nüsxəsini birbaşa, GitHub hesabınızdakı surəti olmadan yaratmaq.

1
04 окт. Cavab anoNewb 04 oktyabr verilir . 2018-10-04 15:42 '18 saat 03:42 'da 2018-10-04 15:42

tags ilə bağlı digər suallar və ya bir sual