Git. Açıklamalarla temel işlemlerin kullanımına hızlı başlama

Git - Github.com sunucusundaki kurulumu ve kaydını kullanma konusunun pratik bölümünü açıklar.

Github.com, versiyon kontrol sistemini kullanarak kodunuzu ve verilerinizi saklayan bir hizmettir. Git.. Github, açık formda 300 MB veri depolamak için ücretsiz bir tarife planı sağlar. Bu, herhangi bir İnternet kullanıcısının verilerinizi indirebileceği anlamına gelir. Github'da, ayda 7 dolar ödeyerek diğer depoya yerleştirilebilir ve kapatılabilir. Ücretsiz Github hesabında, varsayılan olarak, hiç kimse verilerinizi değiştiremez (yalnızca okunabilir). Ancak, GitHub sisteminin kullanıcılarının kimin kayıt hakkına sahip olduğunu ısrar edebilirsiniz.

Makalede, Git ayarının Windows'ta ve Linux işletim sistemlerinde nasıl yapıldığını ayrıntılı olarak açıklanmaktadır.

Linux altında git yükleme

Linux kullanıcıları, git nasıl kurulacağını açıklamak mantıklı olmadığını düşünüyorum - bu farklı şekillerde yapılır. Debian sisteminde (yanımda değer), GIT'i kurmak için, komutu kullanabilirsiniz:

apt-get install git

Git'i Windows altında Takma

Resmi GIT sayfasına gidiyoruz http://git-scm.com, tıklayın Windows için indirin. Açılan pencerede, tıklayın Resmi Git için Tam Yükleyici. EXE-SHNIK'in alındığını çalıştırın.

Kurulum sürecinde, bu soru sorulacak:

"Windows Komut İsteminden Git Çalıştır" seçeneğini belirtirim. Diğer tüm seçenekler varsayılan olarak bırakılabilir. Git'i yükledikten sonra, kullanıcı oturumunu yeniden başlatmanız veya tamamlamanız gerekir ve yol sistemi değişkenindeki değişiklikleri kullanmak için oturum açın.

Sürüm hakkında bilgi alırsanız, GIT kurulu ve çalışıyor. Git programının bulunmadığı bilgileri alırsak, neyin yanlış yaptıklarını anlıyoruz.

Ssh anahtar kurulumu

GitHub'a kayıt yaptırmadan önce, önce bir SSH anahtar şifrelemesi oluşturmalısınız. Bu tuş, şifreyi girmeden, bağlantıyı GitHub ile hızlı bir şekilde kurmak için gereklidir. Böyle bir GitHub tuşu olmadan, çalışmak kolay olmayacaktır.

Dikkat!

Anahtar üretimi sırasında, şifre istenecektir. Bu şifre, yalnızca arabanızda ve başka bir yerde saklanan kapalı tuşa erişimi. Bu şifre, maksimum menkul kıymetler için ayarlanmıştır, ancak onsuz yapabilirsiniz. Bir şifre ayarı özel bir tuşa ayarlayarak, bu şifreyi her GitHub sunucusuyla girmeniz gerekir. Böylece, bir şifre belirlerken, şifreleme tuşlarını kullanma rahatlığı ortadan kalkar.

MyTetra kullanıcıları: Senkronizasyon sırasında GIT'yi aramak için kullanılan komut satırı ile çalışmanın arayüzü karakter girme konusunda çalışamaz. Bu nedenle, şifreyi belirlerseniz, senkronizasyon çalışmaz.

Linux'ta SSH tuşlarını ayarlama

Linux işletim sisteminde, önce ~ / .SSH dizinine bakmanız gerekir. ID_RSA dosyaları ve id_rsa.pub varsa, bu SSH tuşlarıdır. Böyle bir dizin veya bu tür dosyalar yoksa, tuşlar oluşturulmalıdır. Takıma izin verin:

Yerine [E-posta Korumalı] E-postanızı belirtmeniz gerekir. Anahtar üretimi sürecinde, nereye dosya koyacağınızı soracaksınız, enter tuşuna basın. Bir şifre talep ederken enter tuşuna basın. Nesilden sonra, ID_RSA ve ID_RSA.PUB dosyaları ~ / .SSH dizininde görünmelidir, daha sonra bizim için uygun olacaklar.

Windows'ta SSH tuşlarını yapılandırma

Windows işletim sisteminde, SSH tuşu jeneratörü GIT paketine dahil edilmiştir. Anahtarları oluşturmak için dosyayı yürütmek için çalıştırmanız gerekir. C: \\ Program Dosyaları \\ GIT \\ Git Bash.vbs. Sıradan bir exe-shnik olarak başlatılabilir. Git konsol programı açılır. Bir takım verilmelidir:

sSH-KEYGEN -T RSA -C " [E-posta Korumalı]"

Dikkatli olun, bu konsolda, polis geçmişi farkedecek, sadece komutu manuel olarak girin. Bir e-posta olarak, posta kutunuzu belirtin. İstek üzerine " Anahtarı kaydetmek için dosyayı girin"Sadece ENTER tuşuna basın." Passhrase'ü girin "ve" Tekrar aynı şifreyi girin "yaparken enter tuşuna basın. Konsolda anahtar oluşturma işleminde, aşağıdaki bilgiler yayınlanacaktır:

Genel / özel RSA anahtar çifti oluşturma.
Anahtarı (/ C / Dökümanlar ve Ayarlar / Kullanıcı Adı / .SSH / ID_RSA) kaydetmek için dosyayı girin.
Passhrase girin (parola için boş):
Aynı şifre tekrar girin:
Tanımlamanız / C / Belgeler ve Ayarlar / Kullanıcı Adı / .SSH / ID_RSA'ya kaydedilmiştir.
Genel anahtarınız / C / Döküman ve Ayarlar / Kullanıcı Adı / .SSH / ID_RSA.PUB'a kaydedildi.
Anahtar parmak izi:
51: DB: 73: E9: 31: 9F: 51: A6: 7A: C5: 3D: DA: 9C: 35: 8F: 95 [E-posta Korumalı]

Bu programı yaptıktan sonra katalogda C: \\ belgeler ve ayarlar \\ username \\ .ssh İd_rsa ve id_rsa.pub dosyaları bulunacaktır, daha sonra bizim için yararlı olacaklar.

Github.com'da kayıt.

Şimdi her şey kayıt için hazır. Github.com'un başlangıç \u200b\u200bsayfasına gidin. Arayüz biraz karıştı, bu yüzden ne basıldığında bir çift ekran görüntüsü vereceğim. Tasarım ve düzen herhangi bir zamanda değiştirilebilir, bu yüzden şu anda eylem mantığını açıklarım.

Üstte menüde öğeyi bulun " Fiyatlandırma ve kayıt olun."Ve üzerine tıklayın:

Tarife planı seçim sayfası açılır. Ücretsiz hesap seçin " ÜCRETSİZ BİR HESAP OLUŞTUR":

GitHub'da bir SSH tuşunu yükleme

Kayıttan hemen sonra, genel anahtar şifreleme anahtarını GUTHUB sisteminde (Açık SSH tuşuna) kaydetmek gerekir. Bir anahtar eklemek için sağ üst köşeye tıklamanız gerekir. " Hesap ayarları":

Açılan pencerede, menü öğesine tıklamanız gerekir " SSH genel anahtarlar."Ve tıklayın" Başka bir ortak anahtar ekleyin". İki alan görünecektir - anahtar adı ( Başlık) ve anahtar içeriği ( Anahtar.).

Alanda Başlık Açık anahtarın oluşturduğu bilgisayarın adını yazabilirsiniz. Rusça yazabilirsin.

Alanda Anahtar. ID_RSA.PUB dosyasının içeriğini takmanız gerekir. Unutmayın, hangi katalogda? Bu dizine gidin, herhangi bir metin editörü ID_RSA.PUB tarafından açın (.pub uzantısı ile birlikte, karıştırmayın). Alandaki GitHub sayfasına tüm metni, kopyalayın ve ekledik. Anahtar..

Bir anahtar ekledikten sonra, bilgisayar GitHub'a Git Programı üzerinden bağlanabilir ve hata oluşmamalıdır.

GitHub'da bir depo oluşturma

Şimdi GitHub'taki ilk havuzunuzu oluşturmanın zamanı geldi. Depo, sadece senkronize edilmiş dosyaların ve alt dizinlerin yalan söyleyeceği bir dizin olarak görülebilir. GitHub Web Arabiriminde bir depo oluşturmanız gerekir ve dosyalarla doldurabilir ve bilgisayarınızdaki GIT programını kullanarak çalışabilirsiniz.

Bir depo oluşturmak için sağ üst köşeye tıklamanız gerekir " Gösterge Paneli.". Açılan pencerede, öğeyi göreceksiniz" Bir depo oluşturun.":

Yani, bu öğeye ihtiyacımız yok! Bu öğe depo oluşturma iletişim kutusunu ve yardım sayfasını açar. Bu öğeye tıklamak yerine, düşük bir link için sayfada aşağıda arıyoruz " Bir depo oluşturun.". Yeni bir depo eklemek için diyalogu da açacak.

Yeni bir depo iletişim kutusu eklenmesinde, en azından proje adı alanını doldurmanız gerekir " Proje Adı."Proje adına, Kiril kullanmamak daha iyidir, çünkü projenin adı dizinin adıdır. Sorunları önlemek için, proje adı yalnızca Latince içeriyor. Düğmesine basıldıktan sonra" Depo oluşturun."Depo oluşturulacak.

Github sistemindeki depoya çalışma referansı oluşturulur. Kullanıcı adı adı altında kayıt olduysanız ve deposunuzun reponame denirse, bu depoya erişmek için aşağıdaki bağlantıları kullanabilirsiniz:

Git sözdiziminde:

[E-posta Korumalı]: Kullanıcı adı / reponame.git

HTTPS sözdiziminde:

https: // [E-posta Korumalı]/Username/Reponame.git.

GITHUB ÜZERİNE GITHUB İLE ÇALIŞMA

Bundan sonra, GitHub Web arayüzünün etrafındaki danslar tam olarak kabul edilebilir. Sonra, yalnızca GIT programını kullanarak çalışabilirsiniz.

İlk başta, GIT programının küçük bir kurulumunu yapmanız gerekir: Kullanıcı ve e-postanın yerel git sistemini belirtin. Bu, herhangi bir dizinde yaparken gerçekleştirilebilecek aşağıdaki komutlarla yapılır:

git Config --Global user.Name "Yourfullname"
Git Config --Global user.Email [E-posta Korumalı]

yourfullname yerine adınızı yazmanız gerekir ve bunun yerine [E-posta Korumalı] - E-posta adresiniz. Bu değerler GitHub'da giriş yapmak için kullanılır. Bu nedenle, GitHub'daki girişinizi belirtmeniz gerekir - noktada [E-posta Korumalı] Şifreleme tuşlarını üretirken girdiğiniz e-postayı belirtmeniz gerekir.

Bu ayarlardan sonra, dosyalarınızı depoya dökülebilirsiniz. Projenizle kataloğa gidin ve takımlar verin:

git taahhüt -a -m "ilk taahhüt"

git uzaktan kumanda kökenli [E-posta Korumalı]: Kullanıcı adı / reponame.git

git Push -u Orian Master

Bu komutlardan sonra, dizinin dosyalarının bir kopyası, komut verilerinin yapıldığı GitHub sunucusunda oluşturulur. Daha sonra, zaten taahhütleri yapabilirsiniz, GitHub sunucusu değişikliklerini doldurun, sunucudaki değişiklikleri okuyun. Ancak bu tamamen farklı bir hikaye.

İnsanlar için doğal olarak değişime direnç. Sürümler kontrol sistemleriyle çalışmaya başladığınızda GIT sizinle tanışmadıysa, muhtemelen Subversion System'de (SVN) daha rahat hissedersiniz.

Genellikle insanlar GIT'in yeni başlayanlar için çok karmaşık olduğunu söylüyorlar. Bununla birlikte, kendimin ona katılmamasına izin vereceğim.

Bu derste, projelerinizde GIT'i nasıl kullanacağınızı söyleyeceğim. Sıfırdan bir proje oluşturduğunuzu varsayalım ve GIT kullanarak bunu yönetmek istiyorsunuz. Başlıca komutlar listesinde yürüdükten sonra, kodunuzu GitHub tarafından buluta nasıl yerleştirileceğinize dair bir fikir edineceksiniz.

Bu yazıda GIT'in temelleri hakkında konuşacağız - projelerinizi nasıl başlatılır, yeni ve mevcut dosyaları nasıl yönetir ve kodunuzu bulutta nasıl kaydederim.

Bu ders yeni başlayanlar için tasarlandığından, dallanma gibi nispeten karmaşık git kısımlarına dokunmayacağız.

Git'i yükleme.

Resmi sitede git detaylı bilgilinux, Mac ve Windows üzerine kurulumunda. Bizim durumumuzda, APT-GET kullanarak GIT'yi kurmak için Ubuntu 13.04'ü göstermek için kullanacağız:

sudo apt-get install git

İlk kurulum

İçinde çalışacağımız bir dizin oluşturalım. Alternatif olarak, mevcut projelerden birini yönetmek için GIT'yi kullanabilirsiniz; Bu durumda, aşağıda gösterildiği gibi bir demo dizini oluşturmanıza gerek kalmayacak:

mkdir my_git_project cd my_git_project

İlk adım, Git'in dizindeki başlatılmasıdır. Bu, projeniz için GIT ile ilişkili tüm bilgileri içeren bir .git dizini oluşturan Init komutu kullanılarak yapılabilir.

git Config --Global user.Name "Shaumik" Git Config --Global user.Email " [E-posta Korumalı]"Git Config --Global Color.ui" Otomatik "

Adınızı ve e-posta adresinizi belirtmezseniz, varsayılan değerler kullanılacağını not etmek önemlidir. Bizim durumumuzda, varsayılan değerler donny kullanıcı adı ve e-posta adresi olacaktır. [E-posta Korumalı].

Ek olarak, kullanıcı arayüzünün renginin otomatik değerini ayarladık, böylece GIT komutunun çıktısı bir renk arka ışığına sahip olacaktır.

-Global ön eki, sistemimizdeki GIT projesini bir dahaki sefere bu ayar komutlarını girmemeniz için gereklidir.

Dosyaları taahhüt için hazırlama

Bir sonraki adım, dizinde dosyalar oluşturmaktır. Örneğin, bir vim metin editörü kullanabilirsiniz. Mevcut bir dizine GIT ekleyeceğinizi unutmayın, bu adımı gerçekleştirmeniz gerekmez:

Depo durumunu kontrol edin

Artık deposumuzda birkaç dosyamız var, hadi Git'in onlara nasıl döndüğünü görelim. Mevcut depo durumunu kontrol etmek için GIT durumu komutunu kullanmanız gerekir:

İzlemek için GIT'e Dosya Ekleme

Şu anda GIT kullanarak izlenecek dosyalar yok. İzlemeniz gereken gitimi belirtmek için özel olarak GIT'de dosya eklememiz gerekir.

Ekle komutu ile dosya ekleyin:

Deponun durumunu kontrol ettikten sonra, bir dosyanın eklendiğini göreceğiz:

Birden fazla dosya eklemek için aşağıdaki komut girişini kullanabilirsiniz (gösteri için başka bir dosya eklediğimizi unutmayın):

git myFile2 myFile3 ekle

Git ekle özyinelemeyi kullanabilirsiniz, ancak bu komuta dikkat edin. Genellikle GIT deposunun dışında depolanan belirli dosyalar (örneğin, derlenmiş dosyalar) vardır.

Ekle komutunu tekrar kullanıyorsanız, deposunuzda varsa tüm bu dosyaları ekler.

Dosyaları silme

Ancak basit bir GIT RM komutunun yürütülmesi dosyayı yalnızca GIT'den değil, yerel dosya sisteminizden de silinir! İçin

Git dosyayı izlemeyi durdurdu, ancak dosyanın kendisi yerel sisteminizde korunur, aşağıdaki komutu çalıştırın:

git rm -cached

Değişiklikler yapmak

Dosyalarınızı yerleştirdikten sonra, GIT'ye uyabilirsin. Taahhüt, bu aşamada havuzunuza erişebileceğiniz belirli bir noktayı yakalamak olduğunu hayal edin.

Her komiteye, önek kullanarak eklenen bir mesaja bağlayabilirsiniz:

git taahhüt -mam "İlk tacmimi"

Yararlı mesajlarla teşvik eder, çünkü bu COM'da neler değiştiğinizi belirlemenize yardımcı olacaktır.

"Çok yaygın mesajlardan kaçının" Sabit hatalar" Bir görev izleyiciniz varsa, "biçiminde mesaj ekleyebilirsiniz. Sabit hata # 234».

İyi uygulama, şubenin adını veya fonksiyonun adını taahhüt raporunun öneki olarak kullanmaktır. Örneğin, " Varlık Yönetimi: PDF varlık dosyaları oluşturmak için işlev eklendi"Anlamlı bir mesaj.

Git, her taahhüt için uzun bir onaltılık numara ekleyerek taahhütleri tanımlar. Kural olarak, taahhütlerinizi yeterince ilk 5-6 karakter belirlemek için tüm dizgiyi kopyalamanıza gerek yoktur.

Lütfen ekran görüntüsünde, ilk taahhüdümüz 8DD76FC koduyla belirlenir.

Daha fazla taahhüt

Şimdi ilk taahhütten sonra birden fazla dosyayı değiştirelim. Değişikliklerinden sonra, GIT Durum GIT komutunun yürütülmesinin bir sonucu olarak, izleyen dosyalardaki değişiklikleri keşfettim:

Git DifN komutunu kullanarak son yorumda yapılan izleme dosyalarındaki değişiklikleri kontrol edebilirsiniz. Belirli bir dosyadaki değişiklikleri görüntülemek istiyorsanız, git diff komutunu kullanın. :

Bir sonraki taahhüt için dosyalarda değişiklik yapmak için bu dosyaları tekrar eklemeniz gerekir. Tüm izlenen dosyaları komutu çalıştırarak ekleyebilirsiniz:

Git taahhüt komutu için öneki kullanarak bu komutu kullanmaktan kaçınabilirsiniz; bu, izleme dosyalarında tüm değişiklikleri ekleyecektir.

Ancak bu süreç, projeye zarar verebileceği için çok tehlikelidir. Örneğin, dosyayı açtığınızı ve yanlışlıkla değiştirdiğinizi söyleyelim.

Seçici olarak dosyayı yerleştirirseniz, her dosyadaki değişikliklere dikkat edin. Fakat eğer taahhütünüze -a ekler eklerseniz, tüm dosyalar HOMMED olacaktır ve olası hataları tanımlayamazsınız.

Dosyalarınızı gönderdikten sonra, taahhütlere devam edebilirsiniz. -M kullanarak tanıttığımız bir mesajın her komite ile ilişkilendirilebileceğinden bahsettim.

Bununla birlikte, kayıt için etkileşimli bir formu açan GIT Commun komutunu kullanarak birkaç satırda bir mesaj girmek mümkündür:

Proje Yönetimi

Projenizin geçmişini görüntülemek için aşağıdaki komutu çalıştırabilirsiniz:

Böylece projenin tüm öyküsü gösterilecek, bu konularda tüm taahhütlerin ve bilgilerin bir listesidir. Taahhütle ilgili bilgiler KESH taahhüt kodunu, yazar, zaman ve komütasyon mesajını içerir. Git'te dalın (şube) kavramını tartarken keşfedebileceğiniz GIT log için çeşitli seçenekler vardır.

Belirli bir ticaret ve değiştirilen dosyalar hakkında ayrıntılı bilgileri görüntülemek için aşağıdaki komutu çalıştırın:

git şovu.

nerede Bu, bir taahhütle ilişkili onaltılık bir sayıdır. Bu ders yeni gelenler için tasarlandığından, belirli bir taahhüt durumuna veya dalları nasıl kontrol edeceğinin durumuna nasıl geri döneceğini düşünmeyeceğiz.

Bulutta kod yerleştirme

Şimdi sisteminizdeki kodun nasıl yönetileceğini öğrendiniz, kodu buluta yerleştirme zamanı.

Github, açık projelerin kaynak kodunu depolamak, dağıtmak ve yönetmek için çok iyi bilinen bir platformdur. Bu hizmet, dünya çapında birçok geliştiriciyi kullanır, bunlar arasında Microsoft, Redhat ve diğerleri gibi büyük şirketler, aynı zamanda birçok popüler projenin yüzlerce geliştiricisidir.

Platform, yalnızca kodu ve dağıtımını, aynı zamanda sürümlerin tarihini, ortak geliştirme araçlarını, belgeler, sürüm ve geri bildirim için araçları da görüntülemek için fırsatlar sunar. Ve hem açık hem de özel projelere Gihub'a yerleştirebileceğiniz en ilginç şey. Bu yazıda, Projenizi barındırmak için Gitub'un nasıl kullanılacağına bakacağız. Bu yüzden konuşmak için, yeni başlayanlar için github.

Öyleyse söyleyelim, kendi projenizin var ve GitHub'taki kodunu diğer kullanıcılara görebileceklerini ve geliştirmeye katılabileceklerini yönlendirmek istiyorsun. Yapmanız gereken ilk şey bir hesap oluşturmaktır.

1. Bir hesap oluşturma

Sitede yeni bir hesap oluşturmak için GitHub'ın ana sayfasını açın ve hemen yeni bir hesap için veri girebilirsiniz. Kullanıcı adını, e-posta ve şifreyi belirtmeniz gerekir:

Girişi tamamladığınızda, tıklayın "ÜCRETSİZ KAYDOL":

Bir sonraki adımda depo türünü seçmeniz gerekir. Halk havuzları ücretsizdir, ancak özel bir depo oluşturmak istiyorsanız, yalnızca sizin için kullanılabilir olan kod, ayda 7 $ ödemek zorunda kalacaksınız.

Hesap hazır ve ilk projenizi oluşturabileceğiniz sayfaya yönlendirileceksiniz. Ancak bunu yapmadan önce, e-posta adresinizi onaylamanız gerekir. Bunu yapmak için, posta kutunuzu açın ve GitHub'dan gelen mektubun bağlantısını izleyin.

GitHub Kurulumu gerekmez, sadece birkaç tıklamayla.

2. Bir depo oluşturmak

Açılan sayfada, bu yetkili kullanıcıların ana sayfasıdır, tıklayın "Bir proje başlat":

Bir ReadMe dosyası oluşturarak depoyu hemen başlatabilirsiniz, bunun için bir kene bahsetmeniz gerekir. "Bu depoyu bir ReadMe ile başlat" sayfanın sonunda. Ayrıca bir lisans seçebilirsiniz:

Her şey hazır olduğunda, "Proje Oluştur"Açıklama ve lisans dosyasını içeren ReadMe dosyasıyla yeni bir proje oluşturulacak.


3. Şubeler ekleme

Github dalları aynı anda birden fazla proje versiyonuyla çalışmanıza izin verir. Varsayılan olarak, bir depo oluştururken, ana dal oluşturulur, bu ana çalışma şubesidir. Örneğin, yazılımı ana dalda yayınlanmadan önce test etmek için ek dallar oluşturabilirsiniz. Böylece aynı anda bir ürün geliştirebilir ve kullanıcılara istikrarlı bir sürümle sağlayabilirsiniz. Ayrıca, farklı sistemler için program versiyonu için ayrı ayrı dallar oluşturabilirsiniz.

Mevcut dal, kelimeden sonra sol üst köşede belirtilir. "Şube".Yeni bir dal oluşturmak için bu listeyi basitçe dağıtın ve adını yazmaya başlayın:

Site yeni bir dal oluşturmanızı önerir, "Şube Oluştur".

Yaratılıştan hemen sonra, sadece şube tarafından yaratılmış olarak çalışacaksınız.

4. Dosyaları değiştirin ve taahhütler

GitHub dosyalarındaki herhangi bir değişiklik, taahhütler kullanılarak yapılır. Taahhüt, düzeltmeleri kendilerini yaparak ve bu düzeltmeleri tanımlayarak gerçekleştirilir. Bu, bunu ve değiştirdiğinizde bunu bilmeniz için gereklidir ve ayrıca ekibin çalışmalarını izlemeyi kolaylaştırır. Komisyon kelimesi "düzeltme" olarak çevrilebilir. Yani, birkaç dosyada değişiklik yapabilir ve sonra düzeltebiliriz. Örnek için README dosyasını değiştirelim. Bunu yapmak için, panelin sağ tarafında bir püskül ile düğmeyi bulun ve tıklayın:

İhtiyacınız olan doğruluğu girebileceğiniz bir metin editörü açılacaktır:

İhtiyacınız olan her şeyi yaptıktan sonra, alanı doldurmanız gerekir. "Taahhüt" sayfanın sonunda. Neyin değiştirildiğini kısaca açıklayın ve ardından "Değişiklikleri taahhüt et":

Bu değişiklikler, şu anda testlerle çalıştığımız için, projenin mevcut şubesine girilecektir, o zaman değişiklikler buna gönderilecektir.

5. Birleşme Sorguları Oluşturma (Çekme İsteği)

Yeni başlayanlar için Github, bu özelliklerden dolayı çok zor görünebilir, ancak bunu çözerseniz çok uygundur. Konfulans talebi veya çekme talebi, herhangi bir geliştiricinin bir başkasını isteyebileceği, örneğin, Kodunu görüntülemek ve ana projeye veya şubeye eklemek için bir başka geliştiricinin isteyebileceği bir fırsattır. Fusion talepleri ile çalışma aracı, Difer Karşılaştırma aracını kullanır, böylece tüm değişiklikleri görebilirsiniz, başka bir renkle vurgulanırlar. Bir taahhüt yarattıktan hemen sonra çekme isteği oluşturulabilir. Test şubelerimizden ana olana çekmeyi isteyin. İlk önce sekmeyi açın "Çekme isteği".

Burada, tıklayın "Çekme isteği oluşturun":

Bu pencerede tüm değişiklikleri görüntüleyebilir, şimdi bir çizgi görüyoruz:

6. Füzyon taleplerini görüntüleyin ve onaylayın

Şimdi, aynı çekme istekleri sekmesinde, birleşme talebinde bulunduk ve sadece onu tıklayarak alabiliyoruz. "Birleştirme Çekme İsteği":

Ancak bu istek başka bir kişiden gelmişse, orada değiştiğini ve bunun için bunu yapmanın gerekli olup olmadığını kontrol etmelisiniz, sorgu açıklamasına tıklayın ve bilinen bir değişiklik görünümü penceresi göreceksiniz:

Kod daha sonra ana şubeye aktarılacak ve test dalı güvenli bir şekilde kaldırılabilir.

7. Hata raporları

Aynı zamanda, GitHub'ı yalnızca kod geliştirmek ve yönetmek için değil, kullanıcılardan geri bildirim için de kullanmak mümkündür. Sekmede "Sorun" Kullanıcılar, ürününüzü kullanırken karşılaştıkları sorunlar hakkında mesaj bırakabilirler. Açık sekme "Sorunlar"ve düğmeye tıklayın "YENİ BASKI":

8. Bültenler

Bugün göz önünde bulunduracağımız ikincisi bültendir. Ürün belirli bir aşamaya ulaştığında, kullanıcılara bir sürüm bırakabilirsiniz ve her şeyin orada sabit olduğundan ve hiç kimsenin master'da yanlış çekme talebini kırdığından emin olabilirsiniz. İlk önce ana proje sayfasına, sonra sekmeyle gitmeniz gerekir. "Salıverme":

Bu sayfada, alandaki sürümü belirtmeniz gerekir. "Tag sürümü", sonra serbest bırakmanın adı ve küçük bir açıklamanın adı. Eğer ikili arşivleri derlediyseniz, burada da eklenmesi gerekir. Sonra tıklayın "Yayın oluştur":

Yayın yarattıktan sonra, böyle bir sayfa oluşturulacak:

sonuç

Bu makalede, projemizi barındırmak ve yönetmek için Gitub'u nasıl kullanacağız. Tüm sistem İngilizcedir, bu nedenle dilin temel bilgisi çok arzu edilir, ancak onlar olmadan bile GitHub ile çalışmadan çok zor olmayacak. Umarım bu bilgi sizin için kullanışlıdır. Komut satırından GIT ile nasıl çalışacağınızla ilgileniyorsanız, yeni başlayanlar için makaleye bakın.

Git ile çalışmak için ayrıntılı tanıtım

Git nedir ve neden ben?

GIT, depoda depolanan dosyalarda girilen tüm değişiklikleri kaydetmenizi sağlayan dağıtılmış bir sürüm kontrol sistemidir. Değişiklikler, birçok sunucuya yerleştirilebilecek taahhütler adı verilen anlık görüntüler şeklinde depolanır. Steroidlerde yedeklemeler için bu standart bulutu düşünün - Kodu yalnızca bir başarısızlık durumunda geri yükleyemezsiniz, aynı zamanda kodu önceki kaydedilen durumlardan herhangi birine geri döndürmeyebilirsiniz. Ayrıca, diğer geliştiricilerle de kolayca etkileşime girebilirsin - yine, birkaç kişi Google Dokümanlar'da bir dosyada çalışabileceği için ve geliştiriciler aynı anda bir depo üzerinde çalışabilir ve değişikliklerini sürdürebilirler.

Tüm avantajları göz önüne alındığında, GIT, gelişen ya da gelişecek herkes için vazgeçilmez bir araçtır. Bu yazıda en faydalı GIT komutlarına ve kullanmaya değer olduklarında duruma bakacağız. Ayrıca gittilerine zaten aşina olursanız, bilgilerini yenilemeye yardımcı olacaktır.

Git ile nasıl çalışılır

Git'te birçok komut mevcuttur, bu nedenle bunları kullanmanın konusu / sebebi üzerine bölmek faydalıdır. Öncelikle, yerel makinedeki git ile işe bakacağız, çünkü çoğu işlem tam olarak orada gerçekleşir ve daha sonra çok oyunculu bir formata dönüşelim.

Git ile, hem komut satırı boyunca hem de GitHub masaüstü gibi grafiksel arayüz yoluyla çalışabilirsiniz. Komut satırı başlangıç \u200b\u200bgeliştiricileri korkutabilse de, çalışmak daha iyidir, çünkü arayüzü olan birçok araçtan daha fazla fırsat sağlar.

Kural olarak, git takımlar gitin türünü alır<команда> <аргументы> Argümanın dosyanın yolu olabileceği yer. Takımlar ayrıca belirtilen seçenekler de olabilir -<опция> veya -<однобуквенная опция> . Komut işlemlerini daha ayrıntılı olarak yapılandırmanıza izin verir. Bu makalede, ekip genel olarak sunulacak, bu yüzden her şey<> Kendi anlamlarını değiştirmeniz gerekecek.

Komutun nasıl kullanılacağını bilmiyorsanız, GIT yardımını kullanarak kılavuzu açabilirsiniz.<команда> ve eğer sadece bir hatırlatıcıya ihtiyacınız varsa, git kullanın<команда> -h veya git.<команда> - help (--help ve -h eşdeğerdir).

Git hazırlanıyor.

Git'i yükleme.

Windows kullanıcıları buradan indirebilir.

MACOS (OS X) GIT, XCODE komut satırı araçlarının bir parçası olarak gelir, bu nedenle bunları yüklemeniz gerekir. GIT'in kullanılabilirliğini kontrol etmek için terminali açın ve sürümünü kontrol etmek için GIT - iversini girin.

Linux'u kullanırsanız, SUDO APT Kurulumu Git-All komutunu veya sudo DNF'yi kullanın.

Yapılandırma dosyasını yapılandırma

GIT kurduktan sonra yapmanız gereken ilk şey, kullanıcı adını ve e-postayı, kullandığınız tüm resimlerde tanımlamak ve saklamak için kullanıldığı için yapılandırmaktır. Bu ayarlar, tüm gerisi ile yapılandırma dosyasında saklanır.

Bir metin editörü kullanarak dosyayı doğrudan düzenleyebilir veya GIT CONFIG --GLOBAL --DIT komutunu kullanarak, Git Config --Global komutunu kullanarak ayrı alanları düzenleyebilirsiniz.<поле> <значение> - User.Name ve user.Email alanları ile ilgileniyoruz.

Core.editor alanını kullanarak taahhüt mesajları yazmak için bir metin editörünü de yapılandırabilirsiniz. Başlangıçta, örneğin, Linux / Mac için VI, varsayılan sistem düzenleyicisini kullanır. Commun.Template alanı, her COM'da kullanılacak şablonu belirlemenizi sağlar.

Diğer birçok alan var, ancak en faydalı olanlardan biri takımı takma adıma bağlar. Örneğin, Git Config --Global Alias.t "Durum -S" Git Status yerine GIT ST kullanmanıza olanak sağlar.

GIT CONFICT --LLIST komutu tüm alanları ve değerlerini yapılandırma dosyasından görüntüler.

Git deposu yarat

Yeni depoyu başlatmak için. GIT INIT komutu kullanılabilir ya da var olanı kopyalamak istiyorsanız, Git Clone<адрес репозитория> .

Git'te işlenen tarih

GIT, verileri taahhüt olarak bilinen bir dizi hafif "anlık görüntüler" şeklinde saklar. Dosya sisteminin durumunu belirli bir noktada ve bir önceki (ler) taahhütlerine bir işaretçi olarak saklarlar. Her komite benzersiz bir sağlama toplamı içeriyor - Git'in taahhütlerine atıfta bulunması için kullandığı bir tanımlayıcı. Hikayeyi izlemek için GIT, ilk taahhütleri belirten kafa işaretçisini saklar (önceki taahhütlere ulaşmak için taahhüt zincirini tersine takip ediyoruz).

Bununla birlikte, sağlama toplamı yoluyla ya da kafasına göre pozisyonuyla ilgili pozisyonundan, örneğin, Kafa (4), kafadan daha önce 4 taahhüt ettiği taahhüt anlamına gelir.

Dosya sistemi git.

Git, üç ana bölümdeki dosyaları izler:

  • Çalışma Dizini (bilgisayarınızın dosya sistemi);
  • hazırlanan dosyaların alanı (evreleme alanı bir sonraki taahhin içeriğini saklar);
  • Kafa (depodaki son taahhüt).

Dosyalarla çalışmak için tüm ana dosyalar, GIT'in bu üç bölüme nasıl kontrol ettiğini anlamaya indirgenir. Hazırlanan dosyaların yalnızca değişiklikleri depoladığı ortak bir yanılgı var. Bu üç bölüm hakkında, her biri dosyaların kopyalarını içeren ayrı dosya sistemleri olarak düşünmek daha iyidir.

Dosya sistemlerdeki değişiklikleri görüntüleyin

GIT Durum komutu, üç bölüm arasında farklılık gösteren tüm dosyaları görüntüler. Dosyaların 4 eyaletine sahiptir:

  1. Dikkat edilmemiş (dengesiz olmayan) - çalışma dizinindedir, ancak kafasında veya hazırlanan dosyalar alanında bir sürüm yoktur (Git dosyayı bilmiyor).
  2. Değiştirildi (Modifiye) - Çalışma dizininde, kayıtlı veya hazırlanmış dosyaların alanında (değişiklikler bir sonraki COM'da değil) ile karşılaştırıldığında daha yeni bir sürüm var.
  3. Hazırlanan (sahneli) - Çalışma dizininde ve hazırlanan dosyaların alanında kafaya kıyasla daha yeni bir sürüm var (taahhüt için hazır).
  4. Değişim olmadan - Dosyanın bir versiyonu tüm bölümlerde, yani, son commostr'da geçerli sürümü içerir.

Not Dosya, çalışma dizinindeki sürüm hazırlanmış dosyalardan daha yeni olandan daha yeni olduğunda, aynı anda "değiştirilmiş" ve "hazırlanmış" ve "başındaki yeni sürümdür.

Daha kompakt bir çıktı elde etmek için GIT durumu komutunun -S seçeneğini kullanabiliriz (dosyaya satırda). Dosya izlenmezse, görüntülenir mi? ; Değiştirilmişse, ismi kırmızı olacak ve hazırlanırsa - yeşil.

Değişiklikleri kendilerini görmek için ve değiştirilmemiş dosyaları görmek için aşağıdaki komutları kullanabilirsiniz:

  • git Diff - Çalışma dizininin hazırlanan dosyaların alanı ile karşılaştırılması;
  • git FARK - KABUL - Hazırlanan dosyaların başı ile karşılaştırılması.

Eğer bir argüman kullanıyorsanız<файл/папка> , Diff, yalnızca GIT Diff SRC / gibi belirtilen dosyalar / klasörler için değişiklikleri gösterecektir.

Dosya Sistemi Güncellemesi

Takım Git Ekle<файл/папка> Dosyalanmış dosyaların / klasör dosyalarının alanını çalışma dizininden günceller.

Git taahhüt komutu, hazırlanan dosyaların alanındaki dosyaların fotoğraflarını çeken yeni bir taahhütle başını günceller.

Git sıfırlama komutu eylemi<коммит> Üç potansiyel adımdan oluşur:

  1. Kafa işaretçisini hareket ettirmek<коммит> (Örneğin, çalışma dizininde geri alma yarışması ve hazırlanan dosyaların alanı, dosyaların daha yeni sürümleri olacaktır). Ayrıca, şubenin kafa işaretçisi bu taahhütlere taşınacak.
  2. Hazırlanan dosyaların alanını taahhütlerin içeriğine göre güncelleyin. Bu durumda, yalnızca çalışma dizini dosyaların en yeni sürümleri olacaktır.
  3. Hazırlanan dosyaların alanının çalışma dizini içeriğini güncelleyin. Bu konuda dikkatli olmanız gerekir, çünkü dosya değişiklikleri sonunda imha edilecektir.

Varsayılan olarak, GIT sıfırlama komutu sadece 1 ve 2 adımları gerçekleştirir, ancak davranışı --Soft Seçenekleri (sadece 1 adım) ve --Hard (tüm adımlar) kullanılarak değiştirilebilir.

Dosyaya / klasöre giden yolu gönderirseniz, komut yalnızca onlar için gerçekleştirilecektir, örneğin git sıfırlama - STOFT Head ~ 1 SRC /.

Takım Git Checkout Başkanı<файл> Git sıfırlama --hard kafa ile aynı sonuca yol açar.<файл> - Hazırlanan dosyaların alanındaki ve Head sürümünün çalışma dizininde, yani, son taahhütten sonra değişikliklerin kullanıldığında, dosyanın bir sürümünün üzerine yazar.

Öte yandan, Git Checkout<файл> (Zaten kafa olmadan), hazırlanan dosyalar alanındaki sürümün çalışma dizininde dosya sürümünün üzerine yazar, yani, son hazırlanan sürümden bu yana değişiklikleri iptal eder.

Sonunda git rm<файл> Dosyanın izlenmesini iptal eder ve çalışma dizininden siler, seçenek --Cached dosyayı kaydeder.

Dosyaları yoksayan

Genellikle, depodaki tüm dosyaları izlemek için GIT'ye ihtiyacımız yok, çünkü numaraları şunları içerebilir:

  • Şifreler gibi hassas bilgilere sahip dosyalar;
  • büyük ikili dosyalar;
  • her derlemeden sonra oluşturulan montaj dosyaları;
  • oS / IDE dosyaları, örneğin, .Ds_store. MacOS için veya .iml Intellij fikri için - sistemden mümkün olduğunca küçük olana bağlı olarak depoya ihtiyacımız var.

Dosya.gitignore'u yoksaymak için. Yoksaymak istediğimiz dosyaları işaretlemek için arama kalıplarını kullanabilirsiniz (basitleştirilmiş düzenli ifadeleri düşünün):

  • / ___ - tekrarlama önler - yalnızca geçerli dizinde dosyaları karşılar;
  • __ / - Belirtilen dizindeki tüm dosyaları karşılar;
  • * ___ - Belirtilen sonuncuya sahip tüm dosyaları karşılar;
  • K! - Belirtilen desenin altına düşen dosyaları görmezden gelmek;
  • [__] - köşeli parantez içinde belirtilenlerden herhangi bir karaktere karşılık gelir;
  • ? - herhangi bir sembole karşılık gelir;
  • / ** / - Yuvalanmış dizinlere karşılık gelir, örneğin, A / D, A / B / D, A / B / C / D, vb. BAŞINA karşılık gelir.

Diğer komutlarda bir dosya / klasör belirlerken arama kalıplarını bile kullanabiliriz. Örneğin, GIT SRC / *. CSS tüm dosyaları ekleyecektir. SRC klasöründeki CSS.

Mücâdele etmek

İşler, sürümlerin tarihinin temeli olduğundan, onlar hakkında biraz daha fazla bilgi edinmek gerekmez.

Git Comple komutu, taahhüt mesajları girmek için bir metin editörü açacaktır. Ayrıca, bu takım birkaç ortak argüman alır:

  • -M Editörü açmadan ekibe bir mesaj yazmanızı sağlar. Örneğin, Git taahhüt -mam "sabitleme çantası";
  • -A tüm izlenen dosyaları hazırlanan dosyaların alanına aktarır ve bunları kombise içeriyor (Git'i taahhütten önce eklemenizi sağlar);
  • - AMEND, son taahhüdün mesajını yanlış yazdıysanız veya bazı dosyaları içermeyi unuttuysanız, kullanışlı olan yeni bir değiştirilmiş taahhütte bulunur.

Dinlemeye değer birkaç ipucu:

  • Genellikle Komite: Neye geri dönerseniz değişiklikleri geri alamazsınız.
  • Bir değişiklik bir taahhüttir: tüm değişiklikleri tek bir comite koymayın, bunları geri almak daha kolay olacak şekilde bölün.
  • Mesaj Formatı: Başlık, zorunlu bir tutuşmaya, uzunluğundaki 50 karakterden az olmalıdır ve mantıksal olarak tamamlamalıdır. Mesaj, taahhütlerin neden yapıldığını ve taahhütlerin ne değiştiğini gösterdiğini açıklamalıdır. İşlemler için mesaj yazma ayrıntılı olarak programlanmış.
  • (İsteğe bağlı) Küçük değişiklikler yapmayın: büyük bir depoda, birçok küçük taahhüt, geçmişi tıklayabilir. Geliştirirken bu tür işleri yapmak için iyi bir ton olarak kabul edilir ve bunları bir taahhüt halinde birleştirmek için onları büyük bir havuza eklerken.

Tarihteki değişiklikleri görüntüleyin

Önceki taahhütlerin geçmişini ters kronolojik sırayla görüntülemek için GIT Log komutunu kullanabilirsiniz. Farklı seçenekler geçebilir:

  • -P Her COM'daki değişiklikleri gösterir.
  • --Stat, değiştirilmiş dosyalar ve her birinde eklenen / uzak dizelerin sayısı gibi taahhütler için kısaltılmış istatistikleri gösterir;
  • -N şovlar n. Son taahhütler;
  • --Since \u003d ___ ve - -until \u003d ___, örneğin --Since \u003d "2019-01-01", 1 Ocak 2019'dan itibaren taahhütleri gösterecek;
  • --pretty, günlük formatını belirlemenizi sağlar (örneğin, --pretty \u003d oneline), örneğin --pretty \u003d format: "% h% s" için daha fazla kişiselleştirme için de kullanabilirsiniz.
  • --grep ve -s filtre, belirtilen dizeyi içeren mesajlarla / değiştirme kodu ile taklit eder, örneğin GIT LOG -S_NAME_NAME, işlevin ekleme / silinmesini görüntülemenizi sağlar;
  • - Birleşmeler birleştirme dalları ile taahhütleri geçer;
  • vETA1..TELL2, şubeden (2) hangi taahhütlerin şube 1'de olmadığını görmenizi sağlar (dalları birleştirirken yararlıdır). Örneğin, git log ustası ...Test, test şubesinden hangi taahhütlerin usta olmadığını gösterecektir (biraz sonra dallarla konuşun).
  • --Left-Right Branch1 ... Şube2, bir dalda (1) veya bir dalda (2) olan, ancak her ikisinde de değil; işaret< обозначает коммиты из ветка1 , а > - şubeden2. DİKKAT Yükle: İki, iki değil, üç nokta kullanılır;
  • -L bir argüman başlangıç, son: Dosya veya şunları kabul eder: Dosya: Dosya ve Dosyadaki Geçiş Satırındaki veya İşlev içindeki değişikliklerin geçmişini gösterir.

Başka bir faydalı ekip git suçludur<файл> , her dosya satırı için bu dizeyi değiştiren son taahhütlerin yazarı ve sağlama toplamı miktarını gösterir. -L.<начало>, <конец> Bu komutu belirtilen satırlara sınırlamanızı sağlar. Bu, örneğin, hangi komitelerin belirli bir hataya yol açtığını öğrenmek için kullanılabilir (geri dönebilmeniz için).

Son olarak, belirtilen düzenli ifadeye göre, taahhüt tarihindeki (sadece çalışma dizininde değil) tüm dosyaları arayan bir GIT GREP komutu var. Seçenek -N, her bir eşleşme için ilgili satır numarasını dosyada görüntüler ve --Count, her bir dosya için eşleşme sayısını gösterir.

Not Git GREP'i Git Log ile karıştırmayın. Birincisi, taahhütler arasında dosya arıyor ve ikincisi günlük mesajlarına bakar.

Uzak sunucular

Şimdiye kadar, yalnızca yerel makinede Git kullanımını tartıştık. Bununla birlikte, uzak havuzların taahhüdün tarihini izleyebilecek ve güncellenebileceğini (taahhüt geçmişimizin uzak bulut yedeklerini düşünebilirsiniz) saklayabiliriz.

Git Remote -V komutu, izlediğimiz uzak havuzların bir listesini ve tahsis ettiğimiz isimleri görüntüler.

Git Clone komutunu kullanırken Sadece kendinize depo bir kopyasını yüklemez, aynı zamanda belirtilen adreste olan ve hangi mengene atanan uzak sunucuyu dolaylı olarak izliyoruz.

En Sarf Malzemeleri:

  • git uzaktan ekle.<имя> - Belirtilen adla uzak bir depo ekler;
  • git uzaktan kaldır.<имя> - Uzak bir depoyu belirtilen adla kaldırır;
  • git Remote Rename.<старое имя> <новое имя> - Uzak havuzları yeniden adlandırır;
  • git uzaktan kumanda url<имя> - Yeni bir adres olarak adlandırılan bir depo atar;
  • git Remote Show.<имя> - Depo hakkındaki bilgileri görüntüler.

Aşağıdaki komutlar kaldırılan dallarla çalışır:

  • git getir.<имя> <ветка> - Belirtilen havuzun dalından veri alır, ancak değişiklikleri birleştirmez;
  • git Çekme<имя> <ветка> - Verileri belirtilen depo dalından birleştirin;
  • git itme.<имя> <ветка> - Belirtilen havuzun dalındaki değişiklikleri gönderir. Yerel şube zaten uzaktan kumandayı izliyorsa, daha sonra git push veya git çekme işlemini kullanabilirsiniz.

Böylece, birkaç kişi, sunucudan değişiklik talep edebilir, yerel kopyalarda değişiklik yapıp ardından bunları bir depo içinde birbirleriyle etkileşime girmenizi sağlayan bir uzak sunucuya gönderebilir.

Şube

Tüm bunlar, her geliştirici farklı zamanlarda bir proje üzerinde çalışıyorsa, iyi ve harika. Yukarıda gösterilen çizelgeler, yalnızca orijinal depo veya yerel kopyada bir değişiklik olan ancak birkaç kişinin çalışmasını olmayan durumları değiştirmiştir.

Bu bizi, Git - Daling'in temel özelliğine, projenin farklı versiyonlarında çalışabilme yeteneğine yol açar. Bu, sipariş edilen bir liste yerine, hikayenin belirli noktalarda ayrılacağı anlamına gelir (bu, ağaca benzer kılan). Git'teki her şube, bu konudaki son taahhütlere hafif bir kafa kafası içerir; bu, ekstra maliyet olmadan birçok dal oluşturmanıza olanak sağlar. İpucu: İçinde geliştirilen işlevselliğe uygun bir dalı arayın. Varsayılan dalı Master denir.

Bu yüzden genel bir işaretçimiz var Kafa. Ve her dal için kafa. Böylece, dallar arasında geçiş yapmak sadece hareket eder Kafa. Karşılık gelen şubenin başında.

Standart ekipler:

  • git Şubesi.<имя ветки> - açık gösteren başlı yeni bir dal oluşturur Kafa.. Eğer argümanı iletmezseniz<имя ветки> , takım tüm yerel şubelerin bir listesini gösterecektir;
  • git checkout<имя ветки> - Bu şubeye geçer. Açmadan önce yeni bir dal oluşturmak için -B seçeneğini geçebilirsiniz;
  • git şube.<имя ветки> - Şubeyi kaldırır.

Yerel havuzumuz ve uzaktan kumandamız olarak, çok sayıda şubeye sahip olabilir, bu nedenle uzak bir depoyu izlerken, aslında kaldırılan bir şubeyi izler (Git Clone, ana dalınızı uzaktaki havuzun menşe / ana şubesine getirir).

Kaldırılan dala bağlanma:

  • git şube -u.<имя удалённого репозитория>/<удалённая ветка> - Geçerli dalı belirtilen uzak dala bağlar;
  • git Checkout - Track<имя удалённого репозитория>/<удалённая ветка> - Önceki komutun analogu;
  • gIT Checkout -B.<ветка> <имя удалённого репозитория>/<удалённая ветка> - Yeni bir yerel dal oluşturur ve uzaktan kumandayı izlemeye başlar;
  • git Branch --VV - Yerel ve izlenen uzak dalları gösterir;
  • git checkout<удалённая ветка> - Uzaktan aynı ada sahip yerel bir şube oluşturur ve izlemeye başlar.

Genel olarak, GIT Checkout, Git Reset'i genel kafayı hareket ettiren, dalların başını belirten bir yerin bir konumu ile ilişkilidir.

Haşere ve temizlik

Bir incelik vardır - Git dallarını değiştirirken çalışma durumunun temiz olmasını gerektirir, yani, izleme dosyalarındaki tüm değişiklikler düzeltilmelidir.

Yaklaşık. Çevirmek Bu tam olarak değil. Bazı durumlarda, Git, eksiksiz değişikliği otomatik olarak başka bir dala aktarabilir.

Bununla birlikte, bazen sabitlenemeyen bitmemiş değişiklikler vardır. Böyle bir durumda, Git Stash komutunu kullanarak kaydedilebilir ve "gizlenebilir". Değişiklikleri iade etmek için, Git Stash'ı uygulayın.

Belki de bunun yerine, yapılan tüm değişiklikleri silmek istiyorsunuz. Bu durumda, Git Clean komutunu kullanın. -D seçeneği ayrıca niteliksiz dosyaları da silecek. İpucu: Doğrudan Kullanmadan Git Clean'ı başlattığınızda ne olacağını görmek için -N seçeneğini ekleyin.

Dalları birleştiren

Dalların ne olduğunu ve her ikisi de anahtarı arasında tartıştıktan sonra, gelişimden sonra nasıl birleştirilebilecekleri hakkında konuşma zamanı geldi. Değişiklikleri birleştirmek istediğimiz şube ana olarak adlandırılacak ve bunları birleştireceğimiz şube - tematik. Bir daldan diğerine değişiklik yapmanın iki yolu vardır: birleştirmek ve hareket etmek.

Birleşme

İki şubenin genel başlangıcına dayanan yeni bir taahhütlerin oluşturulmasını içerir ve her iki kafayı da önceki taahhütler olarak belirtir. Birleşme için, ana dala gidiyoruz ve git birleştirme komutunu kullanıyoruz<тематическая ветка> .

Her iki dal da dosyanın aynı kısmını değiştirirse, çatışma çatışması ortaya çıkar - Git'in dosyanın hangi dosyanın kaydetmek için hangi sürümünü bilmemesi durumunda, bu nedenle çatışmayı kişisel olarak çözmek gerekir. Çakışan dosyaları görmek için GIT durumunu kullanın.

Bu tür dosyaları açtıktan sonra, benzer çatışma çözünürlük belirleyicileri göreceksiniz:

<<<<<<< HEAD:index.html Everything above the ==== is the version in master. ======= Everything below the ==== is the version in the test branch. >\u003e\u003e\u003e\u003e\u003e\u003e Test: index.html

Bu blokta, ayrılmak istediğiniz sürümdeki her şeyi değiştirin ve dosyayı hazırlayın. Tüm çatışmaları çözdükten sonra, birleşmeyi tamamlamak için GIT taahhütünü kullanabilirsiniz.

Hareket

Birleşme komitesinin iki şubesini birleştirmek yerine, hareketli, Tematik Şube komitelerinin, bir taahhütlerin temizleyici bir geçmişine dökülen, temel dalı bir dizi yeni komiteyi oluşturur.

Git Rebase komutu hareket etmek için kullanılır<основная ветка> <тематическая ветка> bu, ana olandaki tematik dalda değişiklikleri üretir; Baş tematik şube, son çoğaltılmış taahhüdün gösterdiğini gösterir.

Vs taşımak birleşme

Günlüğü birleştirdikten sonra bir hikaye ile oldukça rastgele görünebilir. Öte yandan, hareketli, hikayeyi normal, tutarlı bir biçimde yeniden yazmanıza izin verir.

Peki eğer hareketli her zaman kullanabilirseniz neden birleşmeye ihtiyacınız var? Ne yazık ki, hareketli, kafa karıştırıcı kütüklerden bir Panacea değildir, çünkü yerinden edilmiş taahhütler aslında aynı yazara, mesajı ve değişikliğine sahip olmalarına rağmen, aslında farklıdır.

Bir senaryo hayal edin:

  • Şubenizde, birkaç taahhüt oluşturur ve onları ana dala birleştirirsiniz.
  • Başkası, taahhütlerinizin temelinde çalışmaya karar verir.
  • İşlemlerinizi hareket ettirmeye ve sunucuya göndermeye karar veriyorsunuz.
  • Birisi çalışmalarını ilk tüccarlarınızın temelinde birleştirmeye çalıştığında, sonunda, bir yazar, mesaj ve değişikliklerle iki paralel dal alacağız, ancak farklı taahhütlerle.

Bu nedenle, burada tavsiye:

Değişiklikleri yalnızca özel yerel şubenizde hareket ettirin - başkasının bağlı olduğu taahhütleri hareket ettirmeyin.

Komite Geri Alma - Geri Dön ve Sıfırla

Neyin daha iyi olduğu hakkında benzer tartışmalar, komtiyeyi geri almak istediğinizde ortaya çıkar. Takım Git Reverse.<коммит> Git sıfırlama sırasında yeni bir taahhüt, iptal etme değişiklikleri, ancak geçmişi korurken<коммит> Temiz bir geçmişi sağlayarak kafa işaretçisini hareket ettirir (bu taahhüt asla olmadıkça). Bununla birlikte, bu değişikliklere artık geri dönmeyeceğinizi, örneğin, sözleşmenin iptalinin gereksiz olduğuna karar verirseniz, bu değişikliklere geri dönmeyeceğinizi belirtmek önemlidir. Temizleyici - daha iyi anlamına gelmez!

Özetlemek

Bu aşamada git ile çalışmanız gereken hemen hemen her şey var. Aşağıda, taahhütler ve tarih üzerinde daha büyük kontrol için birkaç (isteğe bağlı) gelişmiş ipuçları olacaktır. Ek olarak, sonra GitHub'ı rasgele etkileriz - Git ile çalışan en ünlü platformlardan biri sizin için yararlı olabilecek.

Github.

Github, Git deposunu birden fazla sunucusundaki depolayan bir platformdur. Bir GitHub kullanıcısı olarak, uzaktaki depolarınızı sunucularına kaydedebilir ve diğer açık kaynaklı depoya katkıda bulunabilirsiniz. Github, Git'in bazı yeni özelliklerle kullanımını tamamlar.

Örneğin, GitHub'ın kuzeyindeki depo kopyanızı oluşturmak için bir çatal uzak havuz yapabilirsiniz. Bu, orijinal depoda bir dal oluşturma hakkınız olmadığı durumlarda faydalıdır. GIT Clone komutunu kullandığınızda, yerel depolayın uzak formu menşei olarak ve orijinal depoyu yukarı doğru olarak izler.

Bundan sonra, uzaktaki depolarınızın tematik şubesini orijinalin ana dalına boşaltmanız gerekebilir. Bunu yapmak için, yeni bir çekme talebi oluşturabilirsiniz - Gitub'un birleştirme yapmanız için oluşturmadan önce, GitHub'ın çatışmaların varlığını kontrol ettiğinde değişiklik yapma talebi oluşturabilirsiniz. Genellikle, kodu görüntülemek ve onaylamak veya hatta testler yapmak gibi birleştirmeden önce başka kontroller vardır. Sorguda, kodu tartışabilirsiniz ve uzak tema şubesine gönderdiğiniz tüm taahhütler, bu taahhütlerden önce oluşturulmuş olsa bile, talebe otomatik olarak eklenecektir.

Gelişmiş Kullanım: İnteraktif Hazırlık

Hazırlanan dosyaların alanını kolayca yönetebilirsiniz (örneğin, bir büyük yerine birkaç küçük taahhütü sabitlerken), gitti ekle -i'nin başlatılabileceği etkileşimli bir konsol kullanarak. İçinde 8 takım mevcuttur:

  • durum - Hazırlanan her bir dosya için kısa bir açıklama göstermektedir;
  • güncelleme - İzleme dosyalarını hazırlar;
  • geri Revert - Hazırlanan alandan bir veya daha fazla dosyayı kaldırın;
  • doldurulmamış ekle - niteliksiz dosyayı hazırlar;
  • yama - Dosyanın sadece bir kısmını hazırlar (örneğin, birkaç işlevi değiştirdiğinizde, ancak birkaç işle ilgili değişiklikleri kırmak istiyorsanız). Dosyayı seçtikten sonra, size fragmanlara gösterilecek ve muhtemel komutları sunacaksınız: Bu iri mi et? . Girebilir miyim? Her takımı neyin yaptığını öğrenmek;
  • fARK - Hazırlanan dosyaların bir listesini gösterir ve her biri için değişiklikleri görüntülemenizi sağlar;
  • istifa - etkileşimli konsoldan çıkıyor;
  • yardım - her ekibin kısa bir açıklamasını gösterir.

Dosyanın yanındaki sembol *, komutun durumunu değiştireceği anlamına gelir (güncelleme veya geri alma işleminin olup olmadığına bağlı olarak hazırlanmış / hazırlıksız). Komut menüsünden herhangi birinde hiçbir şey girmeden ENTER tuşuna basarsanız, tüm dosyalar hazırlanan duruma (NO) geçecektir.

Lütfen yamaların oluşturulmasının (dosyanın sadece bir kısmının hazırlanması) yalnızca etkileşimli konsolda değil, GIT ekle -P komutu aracılığıyla da mevcut olduğuna dikkat edin.

Gelişmiş kullanım: kural geçmişi

Yerel şube taahhüdünün tarihi üzerinde daha büyük kontrol için git rebase -i kafa ~ komutunu kullanabilirsiniz. n. İkincisi kümesini taşımak için etkileşimli konsolu açacak n. Eskiden yeni (yani hareket ettirileceklerinde) sırayla listelenen taahhütler. Böylece "Geçmişi Düzenle" yapabilirsiniz, ancak orijinal taahhütlerin yalnızca taşımak için değiştirilemediğini unutmayın.

Listelendikleri sırayı değiştirerek taahhütlerin sırasını değiştirebilirsiniz.

Taahhüt mesajını değiştir / satmak

Değiştirmek istediğiniz komiteyi belirtmek için, Düzenleme komutu kullanılır. Sonra, git hareket edeceğinde, bu COM'da durur. Bundan sonra, mesajı değiştirmek ya da unutulmuş dosyaları hazırlamak için Git taahhütünü kullanabilirsiniz. Commoty'yi durdurduktan sonra, durduktan sonra Git RESET başlığını girin ^ (başın bir sonucu olarak, bir taahhütte bulunur ve bu taahhütte değişen tüm dosyalar hazırlıksız durumuna geçecektir). Sonra dosyaları her zamanki gibi bireysel taahhütlerde sabitleyebilirsiniz.

Düzenleme tamamlandıktan sonra Git Rebase --Continue girin.

Birkaç taahhüt üzerine yaz

Bazen birkaç taahhüt üzerine yazmanız gerekebilir - bu gibi durumlarda GIT filtre dalını kullanabilirsiniz. Örneğin, rastgele kaydedilmiş bir dosyayı silmek için GIT filtre-branch -tree-filtre "git rm -f) girebilirsiniz<имя файла>"Kafa. Ancak, aynı zamanda tüm hikaye hareket ettiğini düşünün.

Birkaç taahhüt birleştirilmesi

Projede yeni bir özellik üzerinde çalışırken, tematik şubedeki en ufak değişiklikleri bile kaydedebilirsiniz. Bununla birlikte, bu nedenle tarih, projenin kurallarına aykırı olabilen bu kadar küçük taahhütlerle tıkanır. Bu, birkaç taahhüdün bir büyüklüğüne birleştirilerek düzeltilebilir. Bunu yapmak için önce, ilk taahhüde seçmek için Pick komutunu kullanın ve ardından daha sonra squash. GIT, bir başlangıçtaki tüm değişiklikleri uygulayacak ve size genel taahhüt mesajını düzenlemenizi isteyin.

Ayrı bir eğitim aktarmak

Tematik şubedeki tüm taahhütlerin birleşmesine / hareketi ek olarak, yalnızca belirli bir taahhütle ilgilenebilirsiniz. Birden fazla potansiyel makale üzerinde çalıştığınız yerel bir taslak şubenizin olduğunu varsayalım, ancak bunlardan birini yayınlamak istiyorsunuz. Bunu yapmak için GIT Cherry-Pick komutunu kullanabilirsiniz. Seçmek istediğimizden emin olmak için Git Log'ı kullanabilirsiniz.<основная ветка>..<тематическая> .

Lütfen, bu şekilde yeni bir taahhüt oluşturulduğunu, yalnızca seçilen taahhütlerin (yani bu taahhüt ve öncekiyle arasındaki farkı), ancak durumu değil.

Sonuç

Bu yüzden Git'in temel kavramlarını inceledik. Bu makaleyi kısa bir referans kitabı olarak kullanabilirsiniz ve "Pro Git" kitabını çok daha fazla (~ 450 sayfa) okuyabilir ve gittiği daha derinden.

Git'e daha derine inmek istiyorum, ancak bir büyük kitaptan az (ya da tam tersi) var mı? O zaman bizim bakmalısın.

Değişikliklerin yüzleşmesi - bir kişinin ana özelliği. Versions kontrol sistemleriyle çalışmaya başladığınızda, gitmemiş olamazdı - subversion ile başlamanız muhtemeldir. Genellikle insanlar GIT'in yeni başlayanlar için çok karmaşık olduğunu söylüyorlar. Yine de, kendimin sana katılmamasına izin vereceğim.

Bu makalede, projelerinizle birlikte Git'i nasıl kullanacağınızı söyleyeceğim. Sıfırdan bir proje oluşturduğunuzu ve GIT'yi bir sürüm kontrol sistemi olarak kullanmak istediğinizi varsayıyoruz. Ana komutları okuduktan sonra, GitHub'taki kodunuzu nasıl ortaya koyabileceğinizi okuyacağız.

Bu makale, temel şeyler hakkında konuşacaktır - projeyi nasıl başlatılır, yeni ve mevcut dosyaları nasıl yönetir ve kodunuzu bulutta nasıl saklayacağınız. Makale yeni başlayanlar üzerinde yönlendirildiğinden, dallanma gibi bazı karmaşık şeyleri azaltacağız.

Git'i yükleme.

Resmi sitede Git, çeşitli sistemlerde - Linux, Mac, Windows. Bizim durumumuzda, Ubuntu 13.04'ü kullanacağız ve GIT APT-GET olarak kurulacağız.

Sudo apt-get install git

Başlangıç \u200b\u200bkonfigürasyonu

Çalışacağımız bir dizin oluşturun. Mevcut bir projeyle çalışmak için GIT'yi de kullanabilirsiniz ve bu durumda aşağıda açıklandığı gibi bir gösteri dizini oluşturmazsınız.

Mkdir my_git_project cd my_git_project

Her şeyden önce, proje dizininde GIT deposunu başlatmak gerekir. Bunu Init komutuyla yapabilirsiniz, bu da bir dizin oluşturur. Projenizle ilgili tüm bilgilerle.

Git Config --Global user.Name "Shaumik" Git Config --Global user.Email " [E-posta Korumalı]"Git Config --Global Color.ui" Otomatik "

Adresinizi ve adınızı belirtmezseniz, varsayılan değerler yerine kullanılacağını belirtmekte fayda var. Bizim durumumuzda, varsayılan değerler donny ve [E-posta Korumalı]

Ayrıca arayüz rengini otomatik değere ayarladık, böylece git komutların çıktısı renk olacaktır. Bu değerlerin sistem boyunca kullanılması için bu komutlara --global öneki ekleriz ve bunları her bir projeye ayarlamanıza gerek yoktu.

Taahhüt Dosyaları Hazırlama

Bir sonraki adım birkaç dosya oluşturacağız. Bunun için herhangi bir metin editörünü kullanabilirsiniz. Git'i mevcut bir projede başlatırsanız, bu adımı yapmanız gerekmez.

Depolayın durumunu kontrol edin

Artık projenizdeki dosyalar var, gittinin onlarla nasıl temyiz ettiğini görelim. Mevcut depo durumunu kontrol etmek için GIT Durum komutunu kullanın.

Git'e dosya ekle

Bu aşamada Git, dosyalarımızdan birini izlemez. Olduğu için özel olarak GIT'e dosya eklemek gerekir. Bunu yapmak için, Ekle komutunu kullanın.

Git my_file ekle.

Deponun durumunu kontrol ettikten sonra, dosyalardan birinin buna eklendiğini görüyoruz.

Birden fazla dosya eklemek için aşağıdakileri kullanıyoruz (ilk dosyayı daha önce eklediğimize dikkat edin, bu yüzden sadece kalan iki tane ekleriz).

Git myFile2 myFile3 ekle

Git ekle özyinelemeyi kullanabilirsiniz, ancak bu komuta dikkat edin. Sürüm kontrol sistemine eklenmemesi gereken bazı dosyalar (örneğin, derlenmiş programlar) var. Git'i tekrar tekrar kullanırsanız, bu tür dosyalar da havuza girer.

Dosyaları sil

Yanlışlıkla bir dosya eklediğinizi, oraya sahip olmamalıdır. Veya herhangi bir dosyayı sürüm kontrol sisteminden kaldırmak istiyorsunuz. Genel olarak, GIT RM komutu sadece dosyayı depodan silmez, aynı zamanda fiziksel olarak diskten siler. Git'e dosya izlemeyi durdurun, ancak diskte kaldı, aşağıdaki komutu kullanın:

Git rm --cached [dosya adı]

Commimim değişiklikleri

Tüm gerekli dosyaları ekledikten sonra, onları GIT'de yorumlayabilirsiniz (düzelt). Taahhüt, proje statüsünün herhangi bir zamanda geri dönebileceğiniz belirli bir aşamada anlık göründüğünü ve projenin o zamanın durumunu gördüğünü hayal edin. Her komite ile bir mesaj, önek -m'den sonra argümanın ayarlandığı bir mesaj ilişkilidir.

Git taahhüt -mam "İlk tacmimi"

Bu taahhütte neyin değiştiğini anlamalarına yardımcı oldukları için yararlı bilgiler içeren bir mesaj belirtin. "Hata kuralları" gibi bazı yaygın mesajlardan kaçının. Bir hata izleyiciniz varsa, "Hata # 123" mesaj türünü belirleyebilirsiniz. İyi uygulama - şubenin adını veya iyileştirmenin adını belirtin. Örneğin, "Varlık Yönetimi - varlığa göre PDF oluşturma yeteneğini ekledi" - açık ve anlaşılır bir mesaj.

Git, eğitim uzun altı onaltılık sayısını belirler. Genellikle, tüm çizgiyi kopyalamanıza gerek yok, belirli bir taahhüdü tanımlamak için yeterli olan ilk 5-6 karakter. Ekran görüntüsünde, komtiyumumuzun 8DDD76FC sayısına göre tanımlandığı görülebilir.

Daha fazla taahhüt

Onları işledikten sonra birden fazla dosyayı değiştirelim. Onları değiştirdikten sonra, GIT durumu dosyaları değiştirdiğimi bildirecektir.

Git Difh komutunu kullanarak önceki taahhütten bu yana bu dosyalarda neler değiştiğini görebilirsiniz. Belirli bir dosya için değişiklikleri görüntülemek istiyorsanız, Git Diff'u kullanabilirsiniz.<файл> .

Değişiklikleri endekslemek ve onları tanıtmak gerekir. Tüm değiştirilmiş proje dosyaları, taahhüt için aşağıdaki komuta eklenebilir:

Git taahhüt için bir parametre eklerseniz, bu komutu kullanmaktan kaçınabilirsiniz. Bu komut tüm modifiye dosyaları endeksler ve onları komutarlar. Ancak bu yaklaşım oldukça tehlikeli olabilir, bu yüzden yanlışlıkla istemediğim gerçeğini hatırlayabilirsiniz. Örneğin, dosyayı açtığınızı ve yanlışlıkla değiştirdiğinizi söyleyelim. Değiştirilmiş dosyaları indekslerken, her dosyadaki değişiklikler hakkında bilgilendirilecektir. Ancak tüm değiştirilmiş dosyaları yardıma bakmadan gönderirseniz. Git taahhüt -a -a, daha sonra istediğiniz kişiler de dahil olmak üzere tüm dosyalar işlenecektir.

Dosyaları dizine ek olarak, taahhütlere devam edebilirsiniz. Daha önce de belirtildiği gibi, anahtarını kullanarak taahhüt için bir mesaj belirleyebilirsiniz. Ancak, bir yorum girmek için Console Editor'ı açan GIT Commun komutunu kullanarak çok satır yorumları da belirleyebilirsiniz.

Sorun Yönetimi

Proje geçmişini görüntülemek için aşağıdaki komutu kullanabilirsiniz:

Tam geçmişi geçmişi bir taahhüt listesi ve onlar hakkında bilgi biçiminde gösterecektir. Taahhütle ilgili bilgiler Hash taahhüdü, yazar, zaman ve komütasyon mesajı içerir. Git'te dallanma kullanımı durumunda tanışmak zorunda kalacak birçok GIT log ekibi vardır. Belirli bir taahhüt ve değiştirilmiş dosyaların ayrıntılarını görmek için aşağıdaki komutu çalıştırın:

Git şovu.<хеш_коммита>

nerede<хеш_коммита> - Bir taahhütle ilişkili hex numarası. Bu kılavuz yeni başlayanlar için tasarlandığından, belirli bir taahhüt sırasında devletin nasıl döneceğini veya dalları nasıl kontrol edeceğini düşünmeyeceğiz.