Базовые команды Git

git init — создание репозитория

Создаёт новый Git-репозиторий в текущей папке.
После этой команды появляется скрытая папка .git — она хранит всю историю проекта.

git init

Пример:
Вы начинаете новый проект на React Native:

cd MyMobileApp
git init

Теперь Git отслеживает все файлы в папке MyMobileApp/: App.js, package.json, src/, android/, ios/.

⚠️ Не запускайте git init внутри уже существующего репозитория — это сломает структуру.


git add — добавление изменений в область подготовки

Добавляет изменения файлов в staging area — область, откуда они будут включены в следующий коммит.

Добавить один файл:

git add src/components/LoginButton.js

Добавить все изменённые и новые файлы:

git add .

Добавить все файлы, кроме игнорируемых (через .gitignore):

git add -A

Пример:
Вы изменили App.js и создали src/screens/Home.js.
Чтобы зафиксировать оба:

git add App.js src/screens/Home.js

Важно: git add не сохраняет изменения — он только готовит их к сохранению.
Без git commit изменения не зафиксируются.


git commit — фиксация изменений с сообщением

Сохраняет все подготовленные изменения как один коммит.
Обязательно нужно указывать сообщение с флагом -m.

git commit -m "Добавил экран Home с приветствием"

Пример хорошего сообщения:
"Исправил баг: HomeScreen не отображался на Android 12" — понятно, конкретно, воспроизводимо.

Пример плохого сообщения:
"fixed" — ничего не объясняет.

Коммит — это логическая единица. Делайте один коммит на одну задачу.


git status — просмотр состояния рабочей директории

Показывает, какие файлы изменены, какие добавлены, а какие ещё не отслеживаются.

git status

Вывод может выглядеть так:

On branch main
Changes not staged for commit:
  modified:   src/components/Button.js

Untracked files:
  src/screens/Home.js

Changes to be committed:
  new file:   src/utils/api.js

Это помогает понять:
— Что вы сделали?
— Что ещё нужно добавить?
— Что уже готово к коммиту?


git log — история коммитов

Показывает список всех коммитов в текущей ветке — от самого нового к самому старому.

git log

Вывод:

commit a1b2c3d4e5f67890...
Author: Ivan Petrov <ivan@example.com>
Date:   Mon Apr 1 10:30:00 2025 +0300

    Добавил экран Home с приветствием

commit f9e8d7c6b5a4a3b2...
Author: Ivan Petrov <ivan@example.com>
Date:   Sun Mar 31 15:20:00 2025 +0300

    Настроил стили кнопок

Короткая версия (только хеш и сообщение):

git log --oneline

Вывод:

a1b2c3d Добавил экран Home с приветствием
f9e8d7c Настроил стили кнопок

Используйте git log --oneline чаще — он удобнее для быстрого просмотра.


git diff — сравнение изменений

Показывает, что именно изменилось в файлах между рабочей директорией и последним коммитом.

git diff

Пример вывода:

diff --git a/src/components/Button.js b/src/components/Button.js
index 1234567..89abcde 100644
--- a/src/components/Button.js
+++ b/src/components/Button.js
@@ -5,7 +5,7 @@ const Button = () => (
   <View style={styles.container}>
-    <Text>Войти</Text>
+    <Text style={styles.bold}>Войти</Text>
   </View>
 );

Здесь:

  • - — удалённая строка
  • + — добавленная строка

Если вы хотите увидеть изменения, которые уже добавлены в staging (и готовы к коммиту):

git diff --cached

git diff без флагов — показывает не добавленные изменения.
git diff --cached — показывает добавленные, но ещё не закоммиченные.