GIT
Type in the name of the company you are going to have an interview with.
.gitignore
Вот, хорошие примеры, которые нужно игнорировать
*.log
build/
node_modules/
.idea/
my_notes.txt
Символ слэша в конце некоторых линий означает директорию (и тот факт, что мы рекурсивно игнорируем все ее содержимое). Звездочка, как обычно, означает шаблон.
Разнообразные заметки разработчика
Папки, созданные IDE, например Netbeans или InteliJ
папки node_modules в проекте node.js
Артефакты сборки системы
Логи
3. Файл .gitignore должен быть добавлен, закоммичен и отправлен на сервер, как и любой другой файл в проекте
2. прописываем внутри все, что не хотим видеть (или как-то коммитить). Каждый с новой строки
1. создаем файл вручную
revert
При отмене старых коммитов, нужно быть готовым к тому, что возникнут конфликты.
для отката более сложных изменений, в отличии от -amend.
Самый последний коммит может быть доступен по алиасу HEAD
commit —amend
Если опечатался в коммите, забыл добавить файл или еще что-то. Добавить все из последнего коммита в область подготовленных файлов и попытается сделать новый коммит
git show (commit)
Посмотреть что нового появилось в коммите
git rm --cached (имя файла)
перестать следить за файлом
esc > :wq
выйти из дурацкого окна vim(vi)
git clone ссылка на репозиторий гитхаб
создать локальный репозиторий из github, который уже будет с git init
Windows terminal
cd ..
выйти из папки
жми Tab для автокомплита
clear
очистить консоль
dir
просмотреть содержимое
mkdir
создать папку
mkdir Desktop/git_exercise/
git mv
git reset
git difftool
запускает графический клиент для сравнения, сопоставления всех коммитов
git clean
git rm
git diff
Чтобы увидеть разницу между 2 коммитами
git merge branch_name
слить ветку branch_name с мастер
git checkout
git checkout 09bd8cc1 hello.txt
Возврат файла к предыдущему состоянию
git checkout master
перейти на ветку мастер
исп. для переключения между ветками и возвратов
git checkout -b new_feature
создаем новую ветку с именем new_feature
git commit
Чтобы закоммитить изменения в репозиторий, пишем
git commit -m "какой-то ясный, понятный комментарий"
git add
после add файл будет готов к коммиту
пока не было add система не знает, нужно ли следить за изменениями в файле или можно игнорировать.
Чтобы начать отслеживать файл
git add -A (чтобы добавить все, что находится в директории)
git add . (чтобы добавить все файлы)
git add filename.txt
git status
Используется регулярно. Показывает отслеживает ли файл
git init
создает репозиторий. Включает приложение в этой папке
создается скрытая папка .git, в которой хранится история репозитория и настройки.
Общее
* с git предпочтительней работать через терминал
"Но не обязательно. В IDE есть все, что для этого нужно. Работай там, где удобно". Немчинский. "Все, что не задевает других людей, это полная вкусовщина. Все, что задевает, там промышленные стандарты"
Это и оформление кода. И то, что заливаем а что не заливаем. В какие ветки заливаем. Делаем все так, как договорено. И соблюдать все стандарты. (это внутрикомандные стандарты)
Как конкретно ты попадаешь на сервер гид, как ты заливаешь код, всем до одного места. А кот когда в коде проблемы, вот тут нужно быть внимательным. Тут начинают работать стандарты.
Настройка
git config --global user.name "My Name"
git config --global user.email myEmail@example.com
Если нужно, чтобы файл не попадал в GIT
для этого есть спец. файл .gitignore
Вносим в него названия файлов
email должен совпадать с тем, что на github
Идея
Допустим мы находимся на мастер-ветке и хотим дописать функционал, основываясь на коде из этой ветки.
Для это нам нужно всего лишь написать команду для создания новой ветки и провести всю работу там.
Когда работа будет закончена, ветку нужно слить обратно в мастер.
Особенность git'a - распределенность. Возможность использования одной системы контроля на проектом множеством разработчиков.
Git - это распределенная система контроля версий. Это значит что можно вернуться к любой сохраненной версии в любой момент времени. Кажется, что такой подход популярен только среди программистов, но им пользуются и другие, кому нужен контроль над изменениями в работе.
Это помогает избежать косяков при внесении изменений. Помогает при командной работе.
С системами контроля версий должен уметь работать любой программист, даже если вы только учитесь