Робота з GitHub
Команди терміналу GitBash
- Перевірив:
pwd
current directoryls
List the contents of the current directoryls -la
Скриті файлиcd ..
UP folder.cd folder1/folder2
Change the directory to a different location.mkdir my-folder1
Create a new directorytouch file1.txt
Create a new fileecho "my text" > file3.txt
Write text and Create filerm file1.txt
Remove a filerm -rf my-folder1
Remove directorycp file.txt copy-file.txt
Copy a file or directorymv copy-file.txt file4.txt
Move or rename a file or directorycat file4.txt
Read a file to the terminal- Не Перевірив:
echo:
Print text to the terminalgrep:
Search for a pattern in a filechmod:
Change the permissions of a file or directorysudo:
Run a command with administrative privilegesdf:
Display the amount of disk space availablehistory:
Show a list of previously executed commands.ps:
ps: Display information about running processes
Команди Git
git init
- Ініціалізація проектуgit status
- Підготовлені файли для комітаgit clone URL
- Клонування репо з GitHubgit branch newBranch
- Створити гілкуgit checkout назваГілки
- Перехід в гілкуgit branch
- Виводить список усіх гілокgit branch -m newNameBranch
- Перейменувати гілкуgit add .
- Підготовка до комітуgit commit -m “мій коміт”
- Зробити комітgit log
- Історія комітівgit push
- Запушити комітgit push --set-upstream origin qweqwe
- Перший пуш гілкиgit pull
- Стягує зміни з репозиторіюgit branch -D name_branch
- Видалити гілку локальноgit push origin --delete /назва_гілки
- Видалити гілку віддаленоgit merge ‘назва-гілки’
- залиття коду з гілки ‘назва-гілки’ на поточну гілкуgit --help
git show hesh
git cherry pick hesh
Посилання на мій конспект
Налаштування name та email
Якщо ви ще не налаштовували Git на новій ОС, вам потрібно встановити ваше ім'я користувача та електронну пошту. Це важливо для коректної фіксації змін.
Перевірити name та email
git config --global user.name git config --global user.email
Встановити name та email
git config --global user.name "Serhii Saniuk" git config --global user.email "yupit..@gmail.com"
Відкат комітів
Git Revert
Цей спосіб є найбільш безпечним, оскільки він створює новий коміт, який скасовує зміни попереднього. Це ідеально підходить, якщо ви хочете скасувати зміни, які вже були опубліковані (pushed) у віддалений репозиторій. Це не змінює історію проєкту, що дуже важливо для командної роботи.
Щоб скасувати останній коміт:
git revert HEAD
Щоб скасувати конкретний коміт:
git revert [(]commit_hash]
Git Reset
Команда git reset дозволяє повернути ваш репозиторій до попереднього стану. Цей метод переписує історію комітів, тому його слід використовувати з обережністю, особливо якщо ви працюєте в команді та зміни вже були опубліковані. Якщо ви працюєте в команді, уникайте git reset для комітів, які вже знаходяться у віддаленому репозиторії.
git reset --hard [commit_hash]
Це найагресивніший режим. Він відкочує і гілку, і індекс, і робочу директорію до вказаного коміту. Всі зміни, зроблені після цього коміту, будуть безповоротно втрачені. Використовуйте цю команду з максимальною обережністю! Після використання git reset, якщо ви хочете опублікувати зміни, вам, ймовірно, доведеться використовувати git push --force
Перегляд любого коміту
Перевіряєм які у нас є коміти. Пишем в терміналі
git log
git checkout #####hesh#####
Повернення назад:
git checkout main
Перегляд останнього коміту
git show HEAD
HEAD — це вказівник на останній коміт у поточній гілці.
Перегляд попереднього коміту:
git show HEAD~1
Ця команда покаже деталі коміту, який передує найновішому.
Перегляд будь-якого коміту за хешем:
git show [commit_hash]
приклад: git show abcdef1
Видалення останнього коміта YouTube
Важливо! Видаляти треба як з докального місця так і з GitHub.
Локально. Заходим в термінал і пишемо команду
git log
Перевіряємо скільки комітів потрібно видалити до потрібного коміту.
Якщо одит то пишемо команду
git reset --hard HEAD~
Якщо два то команду
git reset --hard HEAD~2
На GitHub. Заходим на GitHub. В розділ "Commits" і превіряємо що там лишне.
Повертаємось у термінал і пишемо команду:
git push --force
Примусово запушаться зміни на GitHub такі як і локально
Перезапис гілки з іншої гілки
Для вашого випадку, коли main має "непотрібний" код, найпростішим рішенням є просто перезаписати гілку main вмістом гілки branch1. Це можна зробити за допомогою "примусового" пушу (force push), але це слід використовувати з обережністю, оскільки це перезаписує віддалену історію. gemini
git checkout main
git reset --hard branch1
git push --force origin main
Створння тегів
Коли ви працюєте з Git і GitHub, керувати версіями коду можна кількома способами, і найзручнішим для вашої задачі є використання тегів (tags). Теги — це стабільні, незмінні вказівники на конкретні коміти в історії вашого репозиторію. Це як закладки, які ви ставите на важливих "знімках" вашого коду. gemini
-
Створення тегу локально
git tag v1.0 або
git tag -a v1.0 -m "comment"
-
Відправка тегу на GitHub
git push origin v1.0
Або, щоб відправити всі створені локальні теги:
git push origin --tags
-
Просто переглянути та скопіювати код по тегу
git checkout v1.0
АЦе переведе ваш локальний репозиторій у стан "detached HEAD", тобто ви не будете знаходитися на жодній гілці У цьому стані ви можете переглядати та копіювати файли, але не варто робити нові коміти.
Щоб повернутися до своєї основної гілки
git checkout main
-
Створити нову гілку з тегу
git checkout -b new_branch_from_v1.0 v1.0
Ця команда одночасно створить нову гілку з назвою new_branch_from_v1.0 і переключиться на неї, використовуючи стан коду з тегу v1.0.
Конспект GitHub з YouTube (з зошита)
Початок роботи
- Встановити на комп Git
- Відкрити термінал GitBash or Power Shell
- Перевірити версію. Команда git --version
-
Налаштування імені автора:
git config --global user.name "Serhii Saniuk"
Це ім"я буде для усіх репозиторіїв -
Налаштування E-mail автора:
git config --global user.email "shv08@ukr.net"
- Вихід:
Q
Створення новогоо ЛОКАЛЬНОГО репозиторію
- Створити папку з назвою проекта
- Зайти туди і відкрити там термінал Git Bash
- Ініціалізація проекту
git init
echo "my text" > file3.txt
Write text and Create filegit add .
- Підготовка до комітуgit commit -m “мій коміт”
- Зробити комітgit log
- Історія комітівgit checkout dff6d5f
- hesh переміщення по комітамgit checkout main
- переміщення в main- Створюємо нову гілку
git branch newBranch
git checkout назваГілки
- Перехід в гілкуgit branch
- Виводить список усіх гілокgit branch -m newNameBranch
- Перейменувати гілкуgit branch -d branchname
- Видалити гілку локально- Поточну гілку видалити не можна
git push -d remote_name branchname
- Видалити гілкуgit merge branchname
- злиття гілки. Після злиття треба видалити
Практика в VS Code
- Git Bash -
code .
- Можна робити коміти з VS Code (Підсвічує "М")
- Натискаємо на значек типу як usb
- Натискаємо "+" біля файлу (типу як git add .)
- В поле message пишемо повідомлення
- Натискаємо commit
- Короче, в VS Code я зробив дві гілки і буду робить злиття
git merge -m "merge into main" new-fature
Сервіси хостінгa GitHub
git clone URL
- Клонування репо з GitHubgit push
Додати зміни в репоgit pull
Стягнути зміни
В репо багато гілок але після клонування ми їх не побачимо. Щоб їх побачити треба
ввести команду git branch -a
Після цього через git checkout
можна перейти в любу гілку
Як завантажити локальний репо GitHub якщо там його ще нема.
- Створити на GitHub новий репо.
- Ввести команду
git remote add origin "url"
Що означає підключення віддаленого репо. - Але звязок усе ще не встановлено
- Для звязку вводимо команду
git push -u origin "branch"
-u - 1; origin - 2; "branch" - 3 - 1 - Це тільки при першому завантаженні гілки main
- 2 - Назва віддаленого сервера. може це тепер main
- 3 - Назва віддаленої гілки
- Далі просто
git push
без "-u"
About
Список використаних матеріалів
- YouTube відкат комітів