Gitdə necə yaxşı olmaq olar

Komut satırından Git qurmaq və işlətmək üçün sadə bir bələdçi

Sənədlərinizin adını dəyişmədən dəyişdirmək, dördüncü sinif şagirdi üçün Microsoft Word öyrənməsi üçün yaxşı bir prosesdir, ancaq siz mühəndissiniz! Daha sərt versiya nəzarəti üçün texnologiyamız var, lakin yeni git üçün təşəbbüs göstərə bilər. Çox vaxt insanlar qəbulu görməzdən gəlirlər və ya gecikdirirlər.

Bu yazıda aşağıdakıları edəcəyik:

  • Boş bir repo başladın və sıfırdan qurun
  • Bir SSH açarı yaradın və hesabımıza əlavə edin
  • Kod bazamızda dəyişikliklər edin və mənşəyi ilə sinxronlaşdırın
Prioritetlərinizi daha yaxşı qoymaq ...

Hesabımızı təqdim edirik

Gitlab'ı üstün tuturam, çünki ilk məruz qaldığım şəxs idi və Github'un indi də təqdim etdiyi məhdudiyyətsiz pulsuz özəl depolar təklif edən ilk böyük ad idi.

Bir hesab yaratdıqdan sonra belə bir şeyə bənzəyən bir istifadəçi ana səhifəmizə sahibik: https://gitlab.com/ericmg. Bu URL-i hesabımıza bir depo bağlamaq üçün istifadə edirik.

Yeni bir repo yaratmaq üçün istədiyiniz qovluğa kök olaraq gedib işə salırıq:

> $ git init
/Users/egirouard/workspace/medium/.git/ saytında başlanmış boş Git deposu

Bu, sənədlərinizi versiya və idarə etmək üçün lazım olan bütün məlumatları ehtiva edən .git adlı bir qovluq yaradacaqdır. Git-i izləmək üçün bəzi fayllar yaradaq:

> $ echo "Salam Orta, repoya xoş gəlmisiniz"> readme.txt

İndi qovluqda bir fayl olduğundan reponun vəziyyətinin yoxlanılması nəticə verməlidir.

Filial ustasında $ git statusu
Hələ öhdəlik yoxdur
İzlənməmiş fayllar: ("git add" istifadə edin ... "nəyin edilməli olduğunu göstərmək üçün.)
readme.txt
təsdiqləmək üçün heç bir şey əlavə edilmədi, lakin izlənilməmiş fayllar var (izləmək üçün "git add" istifadə edin)

"Git Status" -un çıxışı bizə repo / filialımızın vəziyyətini göstərir: biz filial ustalarındayıq, sərbəst və izlənilməmiş bir sənədlə.

Git faylları əlavə və dəyişdirməyi üç kateqoriyaya bölür:

İzlənilməmiş fayllar: Git-in əvvəl izləməməsi lazım olan yeni fayllar.
İş sahəsi: dəyişmiş, lakin yerinə yetirilməyən fayllar.
Səhnələşdirmə sahəsi: Növbəti öhdəlik üçün işarələnmiş sənədlər dəyişdirildi.

Git'in readme.txt sənədimizdəki dəyişiklikləri izləməsi üçün bunları əlavə etməliyik:

> $ git readme.txt əlavə et> filial şöbəsində $ git statusu
Hələ öhdəlik yoxdur
Edilməsi lazım olan dəyişikliklər: ("git rm --cached" istifadə edin ... "səhnəni tərk etmək.)
yeni fayl: readme.txt

İndi readme.txt "iş sahəmizə" əlavə edildi. Səhnələşdirmək üçün faylı götürməliyik. Öhdəliklər bir mesajla müşayiət olunur ki, layihəni oxuyan digər inkişaf etdiricilər (və ya özümüz) dəyişiklik və ya əlavə səbəbini anlaya bilək. Öhdəliklərə də baxıla bilər. Buna görə mənalı, uyğun mesajlar yazın.

Ancaq indi törətməyə çalışsaydınız, Git kim olduğunuzu bilməyəcəyindən şikayətlənərdi!

> $ git commit -m "Layihəyə Readme faylı əlavə edildi"
*** Xahiş edirəm mənə kim olduğunu deyin.
Qaç
git config --global user.email "[email protected]" git config --global user.name "adınız"
hesabınızın standart şəxsiyyətini təyin etmək. Yalnızca bu depoda şəxsiyyəti təyin etmək üçün --global buraxın.
Ciddi: E-poçt ünvanı avtomatik olaraq tanına bilmir ("egirouard @ eg-macbook. (Yoxdur" ")

Öhdəliklərdə müəlliflər, öhdəliyi götürən geliştiricinin adı və e-poçt ünvanı var. Gitin düzgün işləməsi üçün onu bu meta məlumatla təmin etməli və bir mənşəyə qoşulma qabiliyyəti verməliyik, bu halda Gitlab hesabımız.

Gitin mesajları sizi doğru istiqamətə yönəldir. Komutların yuxarıdakı konsol çıxışından birbaşa işlədiyini görürük və bu dəyərləri bu tək anbardan daha çox bütün kompüter üçün təyin etmək istəsək, qlobal olaraq əlavə edə bilərik (fərdi kompüterdirsə yaxşı bir fikirdir).

> $ git config user.email "[email protected]"> $ git config user.name "Eric Girouard"

İndi müəyyən edə bilərik:

> $ git commit -m "Layihəyə Readme faylı əlavə edildi"
[master (root-commit) d7962a8] Layihə 1-ə əlavə edilmiş Readme faylı dəyişdirildi, 1 insert (+) yaradılması rejimi 100644 readme.txt

Bu işi görməmişdən əvvəl, evə necə zəng edəcəyimizi göstərmək lazımdır. Git'in mənşəyinə, layihənin əvvəlcə klonlandığı uzaq depo üçün terminə istinad edilməlidir. Bununla birlikdə, bir layihəni sıfırdan yaratdığımızda, yeni əmələ gələn anbarımız üçün qalıcı bir ev tikməliyik.

İlk dəfə Git'i itələmək

Yetişməmiş anbarlar dini olaraq heç bitirmədikləri layihələrə başlayanlar üçün əladır. Lakin layihələrimizə uzunmüddətli nəzər yetirmək istəyənlər üçün onu irəlilətmək üçün bir yol lazımdır: SSH-yə daxil olun.

Kodunuzu SSH üzərindən mənşəyə itələmək HTTPS-dən daha asandır, çünki istifadəçi adı və şifrə ilə basmaq lazım deyil. Bir SSH düymə cütü yarada, açıq açarı Gitlabhub'a təmin edə və doğrulama və təhlükəsizliklə avtomatik olaraq dəyişiklikləri edə bilərsiniz.

Bir açar cüt yaratmaq üçün:

> $ cd> $ mkdir .ssh; cd .ssh> $ ssh-keygen -o -t rsa -b 4096 -C "[email protected]"

-C parametri isteğe bağlıdır. Birdən çoxunuz varsa başqalarından ayırmaq üçün açarınızın sonunda bir şərh var.

Bu id_rsa (şəxsi açarınız) və id_rsa.pub (açıq açarınız) yaradacaqdır. Açıq açarımızı paylaşırıq və xüsusi açarımızı saxlayırıq - yaxşı, özəl.

Gitlab istifadəçi ayarlarında açıq açarı hesabınıza əlavə edə bilərsiniz ki, nəhayət itələyə bilərik.

> $ git push --set-upstream [email protected]: ericmg / medium-git-partII.git master
Nesnələrin sayı: 3, bitdi. Nesnələri yaz: 100% (3/3), 264 bayt | 264.00 KiB / s, tamamlandı. Cəmi 3 (Delta 0), yenidən istifadə 0 (Delta 0) Uzaqdan idarəetmə: uzaqdan: Xüsusi layihə ericmg / medium-git-partII uğurla yaradıldı. Uzaqdan idarəetmə: uzaqdan: Uzaqdan idarəetməni konfiqurasiya etmək üçün çalıştırın: uzaqdan: git uzaqdan əlavə mənşəyi əlavə [email protected]: ericmg / medium-git-partII.git Uzaqdan idarəetmə: uzaqdan: Layihəni görmək üçün ziyarət edin: uzaqdan: https://gitlab.com/ericmg/medium-git-partII Uzaqdan idarəetmə: gitlab.com:ericmg/medium-git-partII.git * [yeni filial] master -> master Branch 'master' pultu idarə etmək üçün qurulmuşdur. '[email protected]' dan 'master' filialı: ericmg / medium-git-partII.git '.

Bu əmri parçalayaq:

  • git push: bu əmrin mahiyyəti - kodumuzu yeni təyin olunmuş mənbə yoluna keçirtmək üçün git istifadə etməyə çalışırıq
  • - qurma axını: Git’ə mənşəyinə gedən yolu izah edir. Git əvvəlcədən mövcud filialınızı itələyibsə, mənşəyin harada olduğunu xatırlayacaq
  • [email protected]: ericmg / medium-git-partII.git: Bu, hesabımın mənşəyinə gedən SSH yoludur. [email protected]: hər Gitlab istifadəçisi üçün eynidir. ericmg hesabımın istifadəçi adıdır, orta git-partII bu yeni anbarın adıdır və nəhayət hər Git yolu .git ilə bitir
  • usta: Başlanğıcda basmaq istədiyim budağın adıdır

Basıldıqdan sonra boş anbarımızı bütün yeni doğulmuş izzəti ilə görə bilərik:

Söz verdiyim kimi, yuxarıdakı əmrlərin hamısını daxil etmək üçün readme.txt-i vim-də yeniləyirəm, sonra fərqi yoxlayıram:

> $ git fərq
diff --git a / readme.txt b / readme.txt index 8f8d054..915422b 100644 --- a / readme.txt +++ b / readme.txt @@ -1 +1.13 @@ Salam Orta, Xoş gəlmisiniz repomuzda + Git Init + Echo "Salam Orta, repoya xoş gəldiniz"> readme.txt + git add readme.txt + git commit -m "Layihəyə əlavə edilmiş Readme faylı" + git config user.email "Məsələn @ email.com "+ git config user.name" Eric Girouard "+ git commit -m" Layihəyə oxunma faylı əlavə edildi "+ cd + mkdir .ssh; cd .ssh + ssh-keygen -o -t rsa -b 4096 -C "[email protected]" + cd / Users / egirouard / workspace / medium / + git push --set-upstream [email protected]: ericmg / orta-git-partII.git master

Dəyişikliyi əlavə et / icra et ("git əlavə et." Cari iş qovluğunda və altındakı bütün faylları əlavə edir)

> $ git əlavə edin. > $ git commit -m "Readme faylına əlavə edilmiş bütün git əmrləri" [master b8a8b82] Readme 1 faylına əlavə edilmiş bütün git əmrləri dəyişdirildi> $ git push obyektlərin sayı: 3, tamamlandı. Nesnələri yaz: 100% (3/3), 260 bayt | 130.00 KiB / s, tamamlandı. Cəmi 3 (Delta 0), yenidən istifadə 0 (Delta 0) gitlab.com:ericmg/medium-git-partII.git d7962a8..b8a8b82 master -> master

Diqqət yetirin ki, bu dəfə heç bir əlavə parametr olmadan git push çalıştırdıq, çünki Git mənşəyin harada olduğunu bildiyindən hər dəfə yerləşdirməyimiz lazım deyil. Layihəmizin ana səhifəsinə yenidən daxil olduqda:

Yenilənmiş oxunuşu görürük! Faylın məzmundan asılı olmayaraq bu qədər sadədir. İç içə alt katalogları, şəkilləri, Javascript, CSS, konfiqurasiya sənədlərini və s. Repoya qoya bilərik və Git dərhal hamısını izləyəcək.

Bu yeni alət dəsti ilə qarşıdakı mühəndislik macərasına daha yaxşı hazırlaşacaqsınız. İndi çıxın və bir şey düzəldin!