Git
VCS - Version Control System
Репозиторий программного кода позволяет команде совместно работать над проектом, автоматически разрешает большое количество конфликтов совместного редактирования. Позволяет фиксировать состояние при помощи тегов и вести разработку в отдельных ветках. Объединять изменения сделанные в различных ветках и репозиториях, получать доступ к истории изменений.
По структуре репозитория можно сделать вывод о профессиональном уровне разработчиков. Так в частности анализируется:
Как команда работает с репозиторием (gitflow, теги для релизных версий, организация ветвления)
Как команда пишет комментарии к комитам
Являются ли комиты атомарными (только одно изменение за раз или комментарий об одном а изменения в том числе о другом)
Области для изучения
Cherry pick - выборочный перенос комитов других веток в текущую
Squash - объединение связанных комитов
Git сценарии
git revert - делает новый коммит, в котором отменяет все изменения из указанного: git revert <хэш коммита>
Если вы сделали коммит, но забыли внести в него некоторые файлы, вы можете отменить коммит, сохранив все ваши изменения на диске: git reset --soft HEAD~1
Чтобы удалить последний коммит вместе с изменениями в файлах, вы можете воспользоваться командой: git reset --hard HEAD~1
Вы также можете откатить несколько последних коммитов. К примеру: git reset --hard HEAD~3
Если вы сделали коммит не в той ветке, вы можете легко скопировать его в нужную, используя команду: git cherry-pick <хэш коммита>
Если вы случайно закоммитили файл, который не должен был попасть в индекс репозитория (например, конфигурационный файл или лог), добавление его в .gitignore уже не поможет. Все будущие изменения этого файла будут фиксироваться Git-ом. Чтобы убрать файл из индекса, не удаляя его из директории, можно использовать следующую команду: git rm --cached path-to/file.txt
git pull --rebase # забрать изменения и свои незалитые файлы расположить поверх
создаем некую ветку на основании бренча develop для реализации новой фичи git checkout -b my_feature develop
Флаг --no-ff вынуждает Git всегда создавать новый объект коммита при слиянии, даже если слияние может быть осуществлено алгоритмом fast-forward. Это позволяет не терять информацию о том, что ветка существовала, и группирует вместе все внесённые изменения.
Добавить что то к предыдущему комиту git commit -amend
Текущее состояние индекса можно посмотреть командой git status:
Посмотреть комиты в удаленный репозиторий git log
Дополнительные источники
Базовий курс по роботі з git для повних новачків https://www.youtube.com/watch?v=SEvR78OhGtw
Last updated
Was this helpful?