Шпаргалка по командам Git
Git записывает изменения файлов как серию коммитов в репозитории. Эти команды охватывают ежедневный цикл: создание репозитория, сохранение работы, ветвление, слияние и обмен с удалённым. Держите шпаргалку открытой во время учёбы.
| Команда | Назначение |
|---|---|
| git init | Create a new, empty Git repository in the current directory. |
| git clone | Download a remote repository and its full history to your machine. |
| git status | Show changed, staged and untracked files in the working tree. |
| git add | Stage changes (files) to be included in the next commit. |
| git commit | Record staged changes as a new commit with a message. |
| git log | Display the commit history of the repository. |
| git diff | Show unstaged or staged differences between states. |
| git branch | List, create or delete branches in the repository. |
| git checkout / switch | Switch branches or restore files (switch is the modern command). |
| git merge | Join another branch's history into the current branch. |
| git rebase | Reapply commits on top of another base commit, rewriting history. |
| git pull | Fetch from a remote and merge the changes into the current branch. |
| git push | Upload local commits to a remote repository. |
| git stash | Temporarily shelve uncommitted changes to reapply later. |
| git remote | Manage the set of remote repositories you track. |
Примечания
- Большинство команд принимают флаги (например, -m для сообщения или -a для всех); полный список — в 'git help <команда>'.
- Имена веток дёшевы и их можно бросить — чаще коммитьте в ветку фичи, затем сливайте в main.
- Перед разрушающими командами вроде rebase или reset убедитесь, что работа закоммичена или спрятана в stash.
Частые вопросы
- В чём разница между merge и rebase?
- Merge объединяет истории новым коммитом с двумя родителями. Rebase воспроизводит ваши коммиты поверх другой ветки, давая линейную историю, но переписывает ID коммитов.
- Как отменить коммит?
- Используйте 'git revert <коммит>', чтобы добавить новый коммит, отменяющий изменение (безопасно, общая история). 'git reset' переписывает историю и не должен использоваться на общих ветках.
- Чем отличаются git pull и git fetch?
- Fetch загружает коммиты и ссылки из удалённого, не трогая рабочую область. Pull делает fetch, а затем сливает или делает rebase этих изменений в текущую ветку.
- Когда использовать git stash?
- Stash временно откладывает незакоммиченные изменения, чтобы вы могли переключить ветку или сделать чистый pull, а потом восстановить их командой 'git stash pop'.