Professional Documents
Culture Documents
Разница Между Git И Github: Використовував Термінал Windows Powershell
Разница Между Git И Github: Використовував Термінал Windows Powershell
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 для отримання докладної довідки про будь-яку конкретну команду.
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 включають:
Проіндексовані (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
При создании нового комита указатель ветки (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