====== Git: Основные команды ======
Перед вами небольшая статья-шпаргалка, которая включает в себя команды удобные, но не всем знакомые команды Git, которые могут стать вашими постоянными спутниками в разработке.
1. **git init**
Эта команда используется для инициализации проекта как репозитория ''git''.
2. **git clone**
Эта команда клонирует репозиторий в новую директорию.
''git config'' — это удобная функция, которая используется для настройки значений конфигурации Git на глобальном и локальном уровнях проекта. Примеры команд:
git config --local user.name "Name"
git config --local user.email "your_email@example.com"
git config --global user.name "Name"
git config --global user.email "your_email@example.com"
Если надо скопировать только файлы:
git clone --depth=1 git://someserver/somerepo dirformynewrepo
rm -rf !$/.git
3. **git remote add**
Пример:
git remote add origin https://github.com/MrKrishnaAgarwal/Git-CheatSheet.git
Эта команда используется для добавления или подключения к удаленному репозиторию.
4. **git remote -v**
Эта команда используется для просмотра подключенных удаленных репозиториев.
5. **git status**
Эта команда используется для просмотра статуса файлов в вашем локальном репозитории. Отслеживаются ли файлы? Не отслеживается? Изменены ли они?
6. **git add**
Пример:'' ''
git add index.html
git add index.html style.css
Эта команда переносит все новые и измененные файлы в раздел проиндексированных файлов
git add -A
Эта команда используется для индексирования ВСЕХ неустановленных файлов.
git add
для конкретного файла
7.** git reset**
Эта команда используется для мягкой или жёсткой отмены изменений, позволяет сбросить состояние проекта до нужного коммита. Например.
отмена неотправленного коммита:
git reset --hard HEAD^
отмена отправленного коммита ( возврат к состояние коммита ''7880ae2'' )
git reset --hard f7880ae2
git push origin -f
8. **git commit**
Эта команда совершает коммит — «закрепляет» промежуточные результаты.
git commit -m “Text message”
Пример:
git commit -m "added navigation bar"
Команда ''-m'' позволяет указать commit message без обращения к редактору
git commit --amend
Команда ''–amend'' вносит в предыдущий коммит изменения, которые подготовлены к коммиту. Используется и для редактирования предыдущего commit message, если в нём допущены ошибки.
9. **git push -u origin**
Ключ ''-u'' (полный вариант ''–set-upstream'') создаёт в удалённом репозитории ветку, соответствующую локальной и связывает их.
git push
Пример:
git push -u origin master
Эта команда используется для отправки закоммиченных файлов в удаленный репозиторий (также известный как GitHub) в указанной ветке. Используйте эту команду, когда вы впервые отправляете файлы в удаленный репозиторий. Он зафиксирует место, куда вы отправляете эти файлы. И в следующий раз можно будет использовать команду ''git push''.
10. **git fetch**
Эта команда используется для получения самой последней версии вашего локального репозитория. Загружает коммиты, файлы и ссылки из удаленного репозитория в ваш локальный репозиторий.
11. **git pull **
Эта команда используется для извлечения только что полученной информации и ее загрузки в локальный репозиторий. ''git pull'' запускает немедленное обновление локального репозитория.
12. **git branch**
Эта команда используется для создания, просмотра переименования и удаления ветки, на которой вы сейчас находитесь.
git branch -a
Эта команда используется для предварительного просмотра всех веток в удаленном репозитории.
git branch -r
Эта команда используется для предварительного просмотра всех веток на сервере.
13. **git checkout**
Эта команда используется для переключения на ветки, которые вы уже посещали ранее.
Пример:
git checkout master
git checkout develop
Ещё один вариант использования:
git checkout
14. **git merge**
Эта команда используется для объединения двух веток. Для этого укажите ветку, которую вы хотите унаследовать изменения. И имя ветки, которое вы будете использовать вместе с этой командой — это ветка, которая предоставит изменения.
Пример:
git merge develop
Здесь основная ветка наследует код из ветки разработки.
15. **git merge -- abort**
Эта команда используется для отмены слияния.
Если нет ошибок, слияния будут успешными. Следовательно, это прерывание можно использовать только в ситуациях, когда слияние не удалось. Как понять, что нужно использовать эту команду? Ваш терминал скажет, что слияние не удалось. Он также может предложить вам исправить конфликты слияния.
Вот ещё один признак: ''~/NextCloud/Documents/Web Projects/Cloud4Y (master)''
Посмотрите в самый конец строки. В скобках написано (master). Это потому, что мы находимся в основной ветке. Если вы находитесь в ветке разработки, это будет означать (''develop''). Если смерджить не получилось, появится надпись (''master|merging'') или что-то в этом роде.
git merge -X theirs
Пример:
git merge -X theirs develop
Эта команда используется для объединения двух веток. И если есть конфликты слияния, эта команда просто предположит, что вы предпочитаете изменения, сделанные в указанной ветке (а не в текущей).
16. **git reset -- hard HEAD**
Эта команда удалит все изменения, внесенные вами в ваш локальный репозиторий, и обновит его до последней версии, которая была закоммичена на GitHub.
17. **git reset HEAD^**
Эта команда перемещает текущую ветку назад на два коммита, эффективно удаляя два снапшота, которые мы только что создали, из истории проекта. Он отменяет случайное закоммичивание и сохраняет изменения.
18. **git clean -f**
Эта команда используется для удаления неотслеживаемых файлов из вашего локального репозитория.
git clean -d
Эта команда используется для удаления неотслеживаемых директорий в вашем локальном репозитории. Вы также можете объединить его с ''git clean -fd'', чтобы сделать и то, и другое.
19. **git rm -r – cached**
Эта команда используется для удаления файла из удаленного репозитория (GitHub), не удаляя его в локальном репозитории.
Пример:
git rm -r --cached config.js
20. **git bisect**
Эта команда используется для обнаружения коммита, вызвавшего ошибку в коде. Так проще отследить коммит, где код работает и выявить проблемный коммит.
21. **git diff**
Эта команда используется сравнения изменений.
частое использование:
git diff
22. **git rebase**
Полезно, если вы работали с веткой, но затем вам нужно объединить изменения, сделанные в этой ветке, с другой. С помощью ''git rebase'' вы можете «переместить» свою ветку поверх последней версии. Это также полезно, если команда следует общепринятым соглашениям о коммитах, таким как объединение коммитов вместе или разделение «больших» коммитов на «меньшие». Это используется в основном для «реорганизации» ваших коммитов.
git rebase -i HEAD~N
Склеить коммиты, переписав историю с момента ''HEAD~N'', т.е. с того, что было ''N'' коммитов назад. ''-i'' — означает в интерактивном режиме.
23. **git stash**
Эта команда используется для сохранения неподтверждённых изменений в отдельном хранилище, чтобы можно было вернуться к ним позже. Сами файлы возвращаются к исходному состоянию. Команда полезна, когда вы работаете над одной веткой, хотите переключиться на другую, но вы ещё не готовы сделать коммит в текущей ветке. Таким образом, вы прячете изменения в коде, переключаетесь на другую ветку, возвращаетесь к исходной ветке, а затем разархивируете свои изменения.
позволяет применить ранее отложенные изменения:
git stash pop