Categorieën: Alle - изменения - конфликт

door Ruslan Nurgaleev 3 jaren geleden

393

GIT

Инструмент GIT позволяет пользователям эффективно управлять изменениями в коде. Команда git status проверяет состояние файлов в репозитории. Создание новых веток осуществляется с помощью git checkout -b, что позволяет вести параллельную разработку.

GIT

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 - это распределенная система контроля версий. Это значит что можно вернуться к любой сохраненной версии в любой момент времени. Кажется, что такой подход популярен только среди программистов, но им пользуются и другие, кому нужен контроль над изменениями в работе.
Это помогает избежать косяков при внесении изменений. Помогает при командной работе.
С системами контроля версий должен уметь работать любой программист, даже если вы только учитесь