You are on page 1of 39

Разница между Git и GitHub

Використовував термінал Windows PowerShell


Настройка имени и почты автора:

git config --global user.name "Viktor Vasechko"


git config --global user.email vasechko9924@gmail.com

Встановлює глобальну адресу електронної пошти користувача, яка буде використовуватися


для ідентифікації автора при здійсненні комітів. Замість "vasechko9924@gmail.com" ви
можете вказати свою власну адресу електронної пошти.

Перевірити налаштування можна за допомогою:


git config –list
CTRl +L clean terminal
Here is the result:
PS C:\Users\38067> git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/etc/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
core.editor="C:\Users\38067\AppData\Local\Programs\Microsoft VS Code\bin\code" --wait
user.name=Viktor Vasechko
user.email=vasechko9924@gmail.com

Перевірка імені та пошти

Очистка Windows PowerShell команда Clear or CTRl +L clean terminal

Для перегляду налаштувань Git за замовченням, ви можете використовувати команду


git config --list. Вона виведе список всіх налаштувань Git на вашому комп'ютері.

Щоб переглянути глобальні налаштування, включаючи ім'я користувача та адресу


електронної пошти, додайте параметр --global до команди, як показано нижче:

git config --global --list

Ця команда виведе всі глобальні налаштування Git, включаючи ім'я користувача


(user.name) і адресу електронної пошти ( user.email), а також інші налаштування, які
ви могли встановити.

Для перегляду налаштувань Git для конкретного репозиторію, перейдіть в каталог


цього репозиторію і використовуйте команду git config --list без параметра --
global
BPMN METHOD AND STYLE SECOND EDITION WITH BPMN IMPLEMENTER'S GUIDE Bruce
Silver
Піднятися на рівень вище
Основні команди Git допомагають вам у керуванні версіями вашого проекту та
спільною роботою з іншими розробниками. Ось кілька основних команд Git:

1. git init: Ця команда створює новий репозиторій Git у поточному каталозі. Вона
ініціалізує пустий репозиторій, який можна буде використовувати для ведення історії
версій вашого проекту.
2. git clone: Клонує віддалений репозиторій Git на ваш комп'ютер. Використовується для
отримання копії проекту з сервера.
3. git add: Додає змінені або нові файли до індексу для підготовки до коміту.
4. git commit: Комітує зміни, які знаходяться в індексі (зміни, які ви додали за
допомогою git add), і створює новий коміт з цими змінами.
5. git status: Перевіряє поточний стан вашого репозиторію, включаючи змінені файли,
файли, що не входять в індекс, і статус поточного гілки.
6. git log: Виводить історію комітів у поточній гілці. Можна використовувати різні
параметри для отримання додаткової інформації.
7. git pull: Витягує зміни з віддаленого репозиторію і об'єднує їх з поточною гілкою.
8. git push: Відсилає ваші локальні коміти на віддалений репозиторій.
9. git branch: Показує список локальних гілок і вказує, на якій гілці ви знаходитесь.
10. git checkout: Перемикає вас між гілками або комітами. Можна використовувати для
створення нових гілок або переходу на іншу гілку.
11. git merge: Об'єднує зміни з іншої гілки у поточну гілку.
12. git stash: Зберігає зміни, які не готові до коміту, в стеш (тимчасовий резерв). Це
дозволяє вам переключитися на іншу гілку або витягнути зміни з сервера без
збереження незавершених робіт.
13. git remote: Показує список віддалених репозиторіїв, з якими ви працюєте.
14. git fetch: Завантажує інформацію про гілки і коміти з віддаленого репозиторію без
злиття змін у вашу робочу гілку.
15. git reset: Скасовує зміни у ваших файлів до певного коміту або стану.
16. git rebase: Застосовує ваші коміти поверх інших комітів, щоб створити більш чисту
історію комітів.
17. git diff: Показує різницю між двома комітами, гілками або робочими копіями файлів.

Це лише деякі основні команди Git. Git має багато інших команд і можливостей для
керування репозиторіями. Ви можете використовувати git --help або git
<команда> --help для отримання докладної довідки про будь-яку конкретну команду.

На операційній системі Windows в командному рядку (Command Prompt або


PowerShell) є декілька команд для операцій з папками і файлами. Ось деякі з найбільш
корисних команд:

1. cd: Команда для зміни поточного каталогу (переход в іншу папку).


Наприклад, щоб перейти до папки "Documents", введіть:
batchCopy code
cd Documents
2. mkdir: Команда для створення нової папки (директорії).
Наприклад, щоб створити папку з ім'ям "NewFolder", введіть:
batchCopy code
mkdir NewFolder
3. rmdir: Команда для видалення папки (директорії). Видалення порожньої папки:
batchCopy code
rmdir FolderToDelete
Якщо ви хочете видалити папку разом з її вмістом, використовуйте /s:
batchCopy code
rmdir /s /q FolderToDelete
4. dir: Команда для перегляду списку файлів і папок у поточному каталозі.
batchCopy code
dir
5. copy: Команда для копіювання файлів і папок. Для копіювання файлу:
batchCopy code
copy source_file destination_folder
6. move: Команда для переміщення файлів і папок. Для переміщення файлу:
batchCopy code
move source_file destination_folder
7. rename: Команда для перейменування файлів і папок.
batchCopy code
rename old_name new_name
8. del: Команда для видалення файлу.
batchCopy code
del file_to_delete.txt
9. xcopy: Розширена команда для копіювання файлів і папок, яка дозволяє більш гнучко
керувати процесом копіювання.
batchCopy code
xcopy source_folder destination_folder /E /I

Ці команди дозволяють вам взаємодіяти з папками і файлами в командному рядку на


операційній системі Windows. Використовуйте їх для виконання різних завдань у
вашій роботі з файловою системою Windows.

Working Directory – all files that we saw when enter the “ls” command or open folder with all the
files using My Computer
Staging area – here come all files that you want to save
У Git існують різні "області" (також відомі як "робочі дерева" або "індекс"), які грають
важливу роль у процесі керування версіями файлів та роботи з ними. Основні області
в Git включають:

1. Робоча директорія (Working Directory): Це ваша робоча папка, де ви редактуєте та


створюєте файли для вашого проекту. Всі ваші зміни здійснюються в цій директорії.
2. Індекс (Staging Area): Індекс - це проміжна область, в якій ви відзначаєте зміни, які
ви хочете включити в наступний коміт. Зміни, які додані до індексу, будуть включені у
коміт.
3. Локальний репозиторій (Local Repository): Локальний репозиторій - це місце, де Git
зберігає всі ваші коміти та історію змін для вашого проекту. Він знаходиться у папці
.git у кореневій папці вашого проекту.
4. Віддалений репозиторій (Remote Repository): Віддалений репозиторій - це
віддалене сховище, де зберігається копія вашого проекту на сервері або хостинг-
платформі, такій як GitHub, GitLab або Bitbucket. Віддалений репозиторій дозволяє
робити спільну роботу з іншими розробниками та зберігати ваш проект в
централізованому місці.

Процес роботи з Git зазвичай включає такі кроки:

1. Зробіть зміни у вашій робочій директорії, редагуючи або створюючи файли.


2. Використовуйте команду git add для додавання змін до індексу (стагінгу).
3. Використовуйте команду git commit для створення коміту з змінами, які знаходяться
в індексі.
4. Коміти зберігаються в вашому локальному репозиторії.
5. Щоб поділитися вашими змінами з іншими розробниками, використовуйте команду
git push, щоб відправити їх до віддаленого репозиторію.
6. Щоб отримати оновлення від інших розробників, використовуйте команду git pull,
щоб витягнути їхні зміни з віддаленого репозиторію.

Ці області управляють потоком роботи з Git та дозволяють зберігати історію змін та


спільно працювати з іншими учасниками проекту.
Неотслідковувані (untracked) - це файли, які не були додані в репозиторій і не
належать до жодного снімку (snapshot) стану проекту. Це можуть бути нові файли, які ще не
були закоммічені, або файли, які були виключені з відстеження за допомогою
файлу .gitignore. Щоб додати неотслідковуваний файл в репозиторій, потрібно використати
команду git add <file>.

Проіндексовані (staged) - це файли, які були змінені і підготовлені для комміту. Це означає,
що зміни в цих файлах будуть включені в наступний снімок стану проекту, який буде
створений за допомогою команди git commit. Щоб скасувати індексацію файлу, потрібно
використати команду git reset <file>.

Unmodified - це файли, які не були змінені відносно останнього снімку стану проекту і не
потребують комміту. Це означає, що ці файли відповідають тому, що збережено в
репозиторії. Щоб побачити список unmodified файлів, можна використати команду git ls-files
-v, яка покаже всі відстежувані файли з префіксом H^1^]. Якщо ви хочете побачити список
unmodified файлів разом зі статусами інших файлів, можна використати команду git status -
uno, яка покаже тільки змінені і проіндексовані файли, або команду git status, яка покаже
також і неотслідковувані файлиhttps://stackoverflow.com/questions/16307091/make-git-status-
show-unmodified-unchanged-tracked-files

Змінені (modified) - це файли, які були змінені відносно останнього снімку стану проекту,
але ще не були проіндексовані (staged) для комміту. Це означає, що зміни в цих файлах ще не
були зафіксовані в репозиторії. Щоб проіндексувати змінений файл для комміту, потрібно
також використати команду git add <file>.
Файл (blob) - це об'єкт, який містить вміст будь-якого файлу в проекті, але не зберігає
інформацію про його ім'я, розташування або права доступу. Файл має унікальний хеш SHA-
1, який використовується для ідентифікації його в репозиторії. Файл можна створити за
допомогою команди git hash-object
Дерево (tree) - це об'єкт, який містить список файлів і піддерев, які належать до певного
каталогу в проекті. Дерево зберігає інформацію про імена, розташування і права доступу до
файлів і піддерев, а також посилання на їхні хеші SHA-1. Дерево також має свій хеш SHA-1,
який використовується для ідентифікації його в репозиторії. Дерево можна створити за
допомогою команди git write-tree

Коміт (commit) - це об'єкт, який містить посилання на дерево, яке відображає стан проекту в
певний момент часу. Коміт також зберігає інформацію про автора, дату, повідомлення і
посилання на один або декілька батьківських комітів, які передували йому. Коміт має свій
хеш SHA-1, який використовується для ідентифікації його в репозиторії. Коміт можна
створити за допомогою команди git commit-tree

Анотований тег (annotated tag) - це об'єкт, який містить посилання на будь-який інший
об'єкт в репозиторії, зазвичай на коміт. Анотований тег також зберігає інформацію про ім'я,
дату, повідомлення і підпис того, хто створив тег. Анотований тег має свій хеш SHA-1, який
використовується для ідентифікації його в репозиторії. Анотований тег можна створити за
допомогою команди git tag -a

Хеш у гіт - це унікальний ідентифікатор, який дозволяє відстежувати зміни у файлах і


директоріях проекту. Хеш генерується за допомогою хеш-функції SHA-1, яка перетворює
будь-які дані на 40-символьну послідовність з цифр і літер від a до f. Наприклад, хеш коміту
може виглядати так: 7a98805f6f5f8f0d0d9c8cbe0e0c5c48a3c1f86e. Хеш використовується для
посилання на різні об'єкти в репозиторії, такі як файли, дерева, коміти і теги. За допомогою
хешу можна швидко і точно знайти потрібний об'єкт, порівняти його з іншими або
перевірити його цілісність.
При створенні коміту гіт створить 5 об’єктів у гіт репозиторії з унікальними SH1 хешами: 3
типу blob, 2 типу tree, та 1 commit.

Какие данные находятся в комите?


Head в Git - це поняття, яке відноситься до поточного коміту, на якому базується зміст
робочої директорії. Head може бути або символічним посиланням на гілку, або
безпосередньо на коміт. У першому випадку, Head вказує на останній коміт на вибраній
гілці, у другому - на конкретний коміт, який не пов'язаний з жодною гілкою. Це називається
відокремленим Head. Head можна змінити за допомогою команди git checkout, яка переміщає
Head на іншу гілку або коміт. Head визначає, з якого стану проекту починаються нові зміни,
які потім можна закомітити.
При создании нового комита гит всегда создаёт новый объект типа tree.

При создании нового комита указатель ветки (head) перемещается на последний комит
автоматически
Переход со 2 версии на 1
При создании 2 версий проекта гит создаст следущую структуру

Если содержимое файлов из 1 версии не изменилось то гит будет ссылаться на эти файлы и в
следующей версии
git status - показывает состояние файлов в рабочем каталоге и индексе. Эта команда выводит
список файлов, которые изменены, но не добавлены в индекс, список файлов, которые
добавлены в индекс и готовы к коммиту, а также подсказки, как изменить состояние файлов.
git add - добавляет файлы или изменения в файлы в индекс (staging area) для последующего
коммита. Эта команда позволяет выбрать, какие файлы или части файлов включить в
следующий снимок (snapshot) состояния проекта https://git-scm.com/book/ru/v2/%D0%9A
%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B-Git-%D0%9E%D1%81%D0%BD
%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC
%D0%B0%D0%BD%D0%B4%D1%8B

git commit -m це команда, яка дозволяє зробити коміт з повідомленням, що описує зміни, які
були внесені в репозиторій. Коміт - це запис стану файлів і директорій, які відстежуються
Git, в певний момент часу. Коміти можна порівнювати, зливати, відміняти та іншим чином
маніпулювати ними. Команда git commit -m приймає один аргумент - рядок, який містить
повідомлення коміту. Наприклад:
git commit -m "Додано нову функцію"
Це створить новий коміт з повідомленням "Додано нову функцію". Якщо ви не вкажете
повідомлення, Git відкриє текстовий редактор, де ви зможете ввести більш детальне
повідомлення.
Щоб використовувати команду git commit -m, ви повинні спочатку додати файли, які ви
хочете комітити, до індексу Git за допомогою команди git add. Індекс - це тимчасова область,
де ви можете вибрати, які зміни включити в наступний коміт. Ви можете додати один файл,
кілька файлів або всі змінені файли за допомогою різних опцій команди git add. Наприклад:
git add file.txt - додає один файл file.txt до індексу.
git add *.txt - додає всі файли з розширенням .txt до індексу.
git add . - додає всі змінені файли до індексу.
Якщо ви хочете пропустити крок додавання файлів до індексу, ви можете використовувати
опцію -a разом з командою git commit -m. Це автоматично додасть всі відстежувані і змінені
файли до індексу і створить коміт з повідомленням, яке ви вкажете. Наприклад:
git commit -a -m "Виправлено помилку"
Це створить новий коміт з повідомленням "Виправлено помилку" і включить всі зміни, які
були зроблені в файлах, які вже відстежуються Git. Однак, ця опція не додасть нові файли,
які ще не відстежуються Git. Для цього вам все одно потрібно використовувати команду git
add.

git log це команда, яка дозволяє переглянути історію комітів в поточній гілці проєкту. Коміт
- це запис стану файлів і директорій, які відстежуються Git, в певний момент часу. Коміти
можна порівнювати, зливати, відміняти та іншим чином маніпулювати ними. Команда git log
відображає всі зміни, зроблені в поточній гілці проєкту в хронологічному порядку,
починаючи з останнього коміту. Кожен коміт має унікальний ідентифікатор (хеш), автора,
дату, повідомлення та посилання на попередній коміт. Наприклад:
`commit 6441b05a802163b77c9d6f39f4fed7c44d925893
Author: John Doe <johndoe@example.com>
Date: Mon Mar 22 10:15:13 2023 +0200
Додано нову функцію
commit 2c6a45b8d789d9d3f9c2d4f3b1ac091d3e3e3013
Author: Jane Doe <janedoe@example.com>
Date: Sun Mar 21 18:42:26 2023 +0200
Виправлено помилку`
Команда git log має багато опцій, які дозволяють налаштувати вивід історії за різними
критеріями. Наприклад, ви можете вказати, скільки комітів ви хочете побачити (-n), які гілки
ви хочете включити (--branches), які файли ви хочете фільтрувати (--), який формат ви хочете
використовувати (--pretty) та багато іншого.
git checkout є командою, яка дозволяє перемикатися між гілками або відновлювати файли
робочого дерева. Гілка - це відгалуження в історії проєкту, яке можна використовувати для
розробки нових функцій, виправлення помилок або експериментів. Робоче дерево - це набір
файлів і директорій, які ви бачите в своїй робочій директорії. Команда git checkout має
декілька режимів роботи, залежно від того, які аргументи ви передаєте їй.
Ось деякі основні сценарії використання команди git checkout:
• Якщо ви хочете створити нову гілку і перейти на неї, ви можете використовувати опцію -b
разом з ім'ям гілки. Наприклад:
git checkout -b new-feature
Це створить нову гілку new-feature, яка буде базуватися на поточній гілці, і перемкне вас на
неї.
• Якщо ви хочете перейти на існуючу гілку, ви можете просто вказати її ім'я. Наприклад:
git checkout master
Це перемкне вас на гілку master, яка є головною гілкою в багатьох проектах.
• Якщо ви хочете відновити певний файл або директорію до стану, який відповідає індексу
або певному коміту, ви можете вказати ім'я файлу або директорії після команди. Наприклад:
git checkout file.txt
Це відновить файл file.txt до стану, який відповідає індексу, тобто до останнього доданого
або збереженого стану.
git checkout 6441b05 file.txt
Це відновить файл file.txt до стану, який відповідає коміту 6441b05, тобто до певного
моменту в історії проєкту.
Practice

You might also like