GIT
Общее
С системами контроля версий должен уметь работать любой программист, даже если вы только учитесь
Это помогает избежать косяков при внесении изменений. Помогает при командной работе.
Git - это распределенная система контроля версий. Это значит что можно вернуться к любой сохраненной версии в любой момент времени. Кажется, что такой подход популярен только среди программистов, но им пользуются и другие, кому нужен контроль над изменениями в работе.
Особенность git'a - распределенность. Возможность использования одной системы контроля на проектом множеством разработчиков.
Идея
Допустим мы находимся на мастер-ветке и хотим дописать функционал, основываясь на коде из этой ветки.
Для это нам нужно всего лишь написать команду для создания новой ветки и провести всю работу там.
Когда работа будет закончена, ветку нужно слить обратно в мастер.
Настройка
email должен совпадать с тем, что на github
Если нужно, чтобы файл не попадал в GIT
для этого есть спец. файл .gitignore
Вносим в него названия файлов
* с git предпочтительней работать через терминал
"Но не обязательно. В IDE есть все, что для этого нужно. Работай там, где удобно". Немчинский. "Все, что не задевает других людей, это полная вкусовщина. Все, что задевает, там промышленные стандарты"
Как конкретно ты попадаешь на сервер гид, как ты заливаешь код, всем до одного места. А кот когда в коде проблемы, вот тут нужно быть внимательным. Тут начинают работать стандарты.
Это и оформление кода. И то, что заливаем а что не заливаем. В какие ветки заливаем. Делаем все так, как договорено. И соблюдать все стандарты. (это внутрикомандные стандарты)
git init
создает репозиторий. Включает приложение в этой папке
создается скрытая папка .git, в которой хранится история репозитория и настройки.
git status
Используется регулярно. Показывает отслеживает ли файл
git add
Чтобы начать отслеживать файл
git add filename.txt
git add . (чтобы добавить все файлы)
git add -A (чтобы добавить все, что находится в директории)
пока не было add система не знает, нужно ли следить за изменениями в файле или можно игнорировать.
после add файл будет готов к коммиту
git commit
Чтобы закоммитить изменения в репозиторий, пишем
git commit -m "какой-то ясный, понятный комментарий"
git checkout -b new_feature
создаем новую ветку с именем new_feature
git checkout
исп. для переключения между ветками и возвратов
git checkout master
перейти на ветку мастер
git checkout 09bd8cc1 hello.txt
Возврат файла к предыдущему состоянию
git merge branch_name
слить ветку branch_name с мастер
git diff
Чтобы увидеть разницу между 2 коммитами
git rm
git clean
git difftool
запускает графический клиент для сравнения, сопоставления всех коммитов
git reset
git mv
Windows terminal
mkdir
создать папку
dir
просмотреть содержимое
clear
очистить консоль
жми Tab для автокомплита
cd ..
выйти из папки
git clone ссылка на репозиторий гитхаб
создать локальный репозиторий из github, который уже будет с git init
esc > :wq
выйти из дурацкого окна vim(vi)
git rm --cached (имя файла)
перестать следить за файлом
git show (commit)
Посмотреть что нового появилось в коммите
commit —amend
Если опечатался в коммите, забыл добавить файл или еще что-то. Добавить все из последнего коммита в область подготовленных файлов и попытается сделать новый коммит
revert
для отката более сложных изменений, в отличии от -amend.
Самый последний коммит может быть доступен по алиасу HEAD
При отмене старых коммитов, нужно быть готовым к тому, что возникнут конфликты.
.gitignore
1. создаем файл вручную
2. прописываем внутри все, что не хотим видеть (или как-то коммитить). Каждый с новой строки
3. Файл .gitignore должен быть добавлен, закоммичен и отправлен на сервер, как и любой другой файл в проекте
Вот, хорошие примеры, которые нужно игнорировать
Логи
Артефакты сборки системы
папки node_modules в проекте node.js
Папки, созданные IDE, например Netbeans или InteliJ
Разнообразные заметки разработчика