Най-добрите уроци за Git

Git е разпределена система за контрол на версиите с отворен код, създадена през 2005 г. от Линус Торвалдс и други от общността за разработка на Linux. Git може да работи с много видове проекти, но най-често се използва за изходен код на софтуера.

Контролът на версиите е система, която следи промените във файл или група файлове с течение на времето. Когато имате история на тези промени, тя ви позволява да намерите конкретни версии по-късно, да сравнявате промените между версиите, да възстановявате файлове, които може да сте изтрили, или да връщате файлове към предишни версии.

А разпределени за контрол на версиите на системата означава, че различните потребители поддържат свои собствени хранилища на даден проект, вместо да работят от едно централно хранилище. Потребителите автоматично имат пълни възможности за проследяване на файлове и пълната история на версиите на проекта, без да се нуждаят от достъп до централен сървър или мрежа.

Когато Git се инициализира в директория на проекта, той започва проследяване на промените във файла и ги съхранява като „промени набори“ или „кръпки“. Потребителите, работещи заедно по проект, подават своите набори от промени, които след това са включени (или отхвърлени) в проекта.

freeCodeCamp има плейлист в YouTube с много практически съвети за Git и GitHub тук.

Други уроци:

  • Книгата Pro Git, написана от Скот Чакон и Бен Щрауб и издадена от Apress. Книгата е показана изцяло в документацията на Git.
  • За изтегляния, документация и урок, базиран на браузър: Официален уебсайт на Git
  • Най-полезни команди, когато сте в лоша ситуация с GIT: Oh s ***, git!

Разберете трите раздела на проект Git

Проектът Git ще има следните три основни раздела:

  1. Git директория
  2. Работна директория (или работещо дърво)
  3. Постановка

В указателя Git (намира се в YOUR-PROJECT-PATH/.git/) е мястото, където Git магазини всичко е необходимо да се проследи точно на проекта. Това включва метаданни и обектна база данни, която включва компресирани версии на файловете на проекта.

В работната директория е мястото, където потребителят прави местните промени в проекта. Работната директория изтегля файловете на проекта от обектната база данни на директорията Git и ги поставя на локалната машина на потребителя.

В зоната за спиране е файл (наричан още "индекс", "сцената", или "кеш"), който съхранява информация за това, което ще влезе в следващия си ангажимент. Ангажирането е, когато кажете на Git да запази тези поетапни промени. Git прави моментна снимка на файловете такива, каквито са, и постоянно съхранява тази снимка в директорията Git.

С три раздела има три основни състояния, в които даден файл може да бъде във всеки един момент: ангажиран, модифициран или поетапно. Можете да модифицирате файл всеки път, когато правите промени в него във вашата работна директория. След това се инсценира, когато го преместите в зоната за инсцениране. И накрая, това е извършено след фиксиране.

Инсталирайте Git

  • Ubuntu: sudo apt-get install git
  • Windows: Изтеглете
  • Mac: Изтеглете

Конфигурирайте Git Environment

Git има git configинструмент, който ви позволява да персонализирате вашата Git среда. Можете да промените начина, по който Git изглежда и функционира, като зададете определени конфигурационни променливи. Изпълнете тези команди от интерфейс на командния ред на вашата машина (Терминал в Mac, Команден ред или Powershell в Windows).

Има три нива на съхранение на тези конфигурационни променливи:

  1. Система: намира се в /etc/gitconfig, прилага настройките по подразбиране за всеки потребител на компютъра. За да направите промени в този файл, използвайте --systemопцията с git configкомандата.
  2. Потребител: намира се в ~/.gitconfigили ~/.config/git/config, прилага настройки за един потребител. За да направите промени в този файл, използвайте --globalопцията с git configкомандата.
  3. Проект: намира се в YOUR-PROJECT-PATH/.git/config, прилага настройки само за проекта. За да направите промени в този файл, използвайте git configкомандата.

Ако има настройки, които са в конфликт помежду си, конфигурациите на ниво проект ще заменят тези на ниво потребител, а конфигурациите на ниво потребител ще отменят тези на ниво система.

Забележка за потребители на Windows: Git търси конфигурационния файл на ниво потребител ( .gitconfig) във вашата $HOMEдиректория ( C:\Users\$USER). Git също търси /etc/gitconfig, въпреки че е спрямо корен на MSys, който е където и да решите да инсталирате Git на вашата система Windows, когато стартирате инсталатора. Ако използвате версия 2.x или по-нова версия на Git за Windows, има и конфигурационен файл на системно ниво в C:\Documents and Settings\All Users\Application Data\Git\configWindows XP и в C:\ProgramData\Git\configWindows Vista и по-нови. Този конфигурационен файл може да бъде променен само git config -f FILEкато администратор.

Добавете вашето име и имейл

Git включва потребителското име и имейл като част от информацията в коммит. Ще искате да настроите това под вашия конфигурационен файл на ниво потребител с тези команди:

git config --global user.name "My Name" git config --global user.email "[email protected]"

Променете вашия текстов редактор

Git автоматично използва вашия текстов редактор по подразбиране, но можете да промените това. Ето пример за използване на редактора Atom вместо това ( --waitопцията казва на черупката да изчака текстовия редактор, за да можете да вършите работата си в него, преди програмата да продължи):

git config --global core.editor "atom --wait"

Добавете цвят към изхода на Git

Можете да конфигурирате вашата черупка да добавя цвят към изхода на Git с тази команда:

git config --global color.ui true

За да видите всичките си настройки за конфигурация, използвайте командата git config --list.

Инициализирайте Git в проект

След като Git бъде инсталиран и конфигуриран на вашия компютър, трябва да го инициализирате във вашия проект, за да започнете да използвате неговите правомощия за контрол на версиите. В командния ред използвайте cdкомандата, за да се придвижите до папката на първо ниво (или корен) за вашия проект. След това изпълнете командата git init. Това инсталира папка с директории на Git с всички файлове и обекти, необходими на Git за проследяване на вашия проект.

Важно е директорията Git да е инсталирана в основната папка на проекта. Git може да проследява файлове в подпапки, но няма да проследява файлове, намиращи се в родителска папка спрямо директорията Git.

Вземете помощ в Git

Ако забравите как работи някоя команда в Git, можете да получите достъп до помощта на Git от командния ред по няколко начина:

git help COMMAND git COMMAND --help man git-COMMAND

Това показва страницата с ръководството за командата в прозореца на вашата черупка. За да навигирате, превъртете с клавишите със стрелки нагоре и надолу или използвайте следните клавишни комбинации:

  • fили spacebarкъм страницата напред
  • b на страница назад
  • q да напусне

Разлика между Git и GitHub

Git и Github са две различни неща. Git е системата за контрол на версиите, докато GitHub е услуга за хостинг на Git репозитории, която помага на хората да си сътрудничат при писането на софтуер. Те обаче често са объркани поради подобното им име, поради факта, че GitHub изгражда върху Git и защото много уебсайтове и статии не правят разликата между тях достатъчно ясна.

Git не е GitHub

Git

Git е разпределената система за контрол на версиите. Git е отговорен за проследяването на промените в съдържанието - обикновено файлове с изходен код.

За повече информация има пълна статия за самия Git.

GitHub

GitHub е услуга, която осигурява хостинг на Git хранилище. Това означава, че те предоставят решение до ключ за хостване на Git хранилища на техните сървъри. Това може да бъде полезно за запазване на резервно копие на вашето хранилище (Git проследява само промените, направени във вашите файлове с течение на времето; репото все още трябва да бъде архивирано) и да има централизирано място за съхраняване и споделяне на кода ви с други.

Повече от просто услуга за хостинг на Git хранилище, GitHub е софтуерна ковачка. Това означава, че предлага и инструмент за проследяване на проблеми, инструменти за преглед на код и други инструменти за сътрудничество с други хора и създаване на софтуер.

GitHub не е единственият, който предоставя този вид услуги. Един от основните му конкуренти е GitLab. За повече информация вижте раздела за Git хостинг.

Как да се удостоверя с GitHub с помощта на SSH

Преди rsaда продължите, проверете дали тук няма файлове, използвайте:

ls -al ~/.ssh

Ако няма нищо за изброяване (т.е. : No such file or directory), използвайте:

mkdir $HOME/.ssh

Ако там няма нищо, тогава генерирайте нов keygen с:

ssh-keygen -t rsa -b 4096 -C [email protected]

Сега използването ls -al ~/.sshще покаже нашия id_rsa.pubфайл.

Добавете SSH ключа към SSH агента:

eval "$(ssh-agent -s)" # for mac and Linux from bash
eval `ssh-agent -s` ssh-agent -s # for Windows

Добавете RSA ключ към SHH с:

ssh-add ~/.ssh/id_rsa

Копирайте ключа си в клипборда

clip < ~/.ssh/id_rsa.pub # Windows
cat ~/.ssh/id_rsa.pub # Linux

Отидете на страницата с настройки на GitHub и щракнете върху бутона „Нов SSH ключ“ в генерирания ключ.

След това удостоверете с:

ssh -T [email protected]