Java Developer
6.45K subscribers
235 photos
8 videos
12 files
279 links
MAKE JAVA GREAT AGAIN

Мемы: @java_memes
加入频道
Что такое Git

#Git — распределённая система контроля версий. Или коротко РСКВ.

Система контроля версий хранит изменения файлов, которые нужны пользователю. Главная цель — чтобы пользователь в любой момент имел доступ к старым версиям файлов. Вот пример СКВ. Андрей пишет выпускной диплом. Получилось три файла: введение.doc, основная_часть.doc и выводы.doc. Перед тем, как печатать новые мысли, Андрей создает папку и копирует в неё файлы. А к названию папки добавляет текущую дату. Получается "Диплом 15-03-18". И теперь если Андрей случайно удалит важные мысли в выводах, то скопирует их из старого файла.

Распределенная система хранит файлы не на одном центральном сервере, а распределённо. У клиентов — копия проекта. Если умирает сервер и стираются данные, то любой клиентский проект можно скопировать обратно на сервер, чтобы восстановить проект. Когда клиент забирает свежую версию файлов, он создаёт себе полную копию всех данных.

Гит — гибкая и мощная система. Она интереснее, чем ежедневное копирование файлов в новые каталоги. Её используют программисты, чтобы отслеживать исходный код. С гитом разработчики отправляют файлы на удаленный сервер, просматривают изменения, откатывают отдельные файлы или весь проект к прежнему виду. А если модуль вдруг перестаёт работать, то в Гите видно, кто поломал проект.
Жизненный цикл файлов в #Git
Состояния файлов в Git

У вас имеется #Git-репозиторий и рабочая копия файлов для проекта. Вы работаете с классами, изменяете файлы и вскоре проект достигает состояния, которое нужно сохранить. И вы выполняете команды git add и git commit, то есть фиксируете состояние. Зафиксированные состояния репозитория называются снимками или snapshots.

В рабочем каталоге два типа файлов: неотслеживаемые и отслеживаемые. Неотслеживаемые не находятся под версионным контролем. Это файлы, которые не входили в последний слепок состояния и не подготовлены к коммиту (git add). В Идее они коричневого цвета.

Отслеживаемые файлы — это те, которые были в последнем слепке состояния проекта или подготовлены к коммиту. Они трёх типов: неизменённые, изменённые и подготовленные. Когда вы впервые клонируете репозиторий, все файлы будут отслеживаемыми и неизменёнными. Потому что вы взяли их из хранилища и не редактировали.

Изменёнными файлы становятся, как только вы отредактируете их. Git будет рассматривать их как изменённые, потому что они изменились с последнего коммита. Подготовленными вы делаете их командой git add. Так файлы индексируются, попадают в stage. Stage - место для подготовленных файлов. И чтобы зафиксировать индексированные изменения делаете git commit. Затем цикл повторяется.

Более подробно: https://git-scm.com/book/ru/v1/Основы-Git-Запись-изменений-в-репозиторий
Ресурсы по Git

Сайт GitHowTo. Состоит из 50 мини-уроков. На каждом уроке - команда Гит, описание того, что она делает и результат выполнения. В начале курса скачиваешь файлы и постепенно выполняешь все команды на компьютере. Если застрял, то скопируй нужный урок в рабочую папку. https://githowto.com/

Курс GitHub'а. Пишешь команды в браузере - тут же получаешь результат и следующее задание. Помогает, когда редко используешь Гит в терминале. Быстро воскрешает знания основных команд https://try.github.io/

Книга "Pro Git". Подробно описано от установки на комп до низкоуровневых команд. Мне нравится глава о ветвлении https://goo.gl/nmo1b1. Читать книгу на русском https://git-scm.com/book/ru/v2/

#git #обучение
Один день из жизни Git

Создать ветку для задачи
git checkout -b <branch>

Посмотреть состояние файлов
git status

Добавить все изменения
git add .

Сделать коммит
git commit -m "good job"

Отправить ветку в удаленный репозиторий
git push -u origin <branch>

#git
Проблемы с Git

Список частых проблем при работе с Git и их решения. Вопросы разделены по категориям, а ответы написаны понятным языком. Плюс в конце линки на книги, туториалы и GUI-клиенты по Git.

https://bit.ly/1oKguJM #git
Посты о Git

Пока все обсуждают, что Microsoft купила GitHub, сделал подборку постов о Git.

Что такое Git
https://yangx.top/java_developer/15

Жизненный цикл файлов
https://yangx.top/java_developer/19

Состояния файлов
https://yangx.top/java_developer/20

Ресурсы для изучения
https://yangx.top/java_developer/21

Популярные команды
https://yangx.top/java_developer/30

Частые проблемы и их решения
https://yangx.top/java_developer/56

#git
git rename branch

Заметка по git "как переименовать ветку"

1. Переименовываем локальную ветку:
git branch -m new-name

2. Дропаем удаленную ветку со старым именем и пушим с новым:
git push origin :old-name new-name

3. Обновляем upstream:
git push origin -u new-name

#git
рубрика "нерегулярные заметки"

Как удалить все локальные ветки #Git

git branch --merged | grep -v \* | xargs git branch -D
gitignore для java и maven проектов

простенький gitignore для мелких проектов, чтобы был всегда под рукой


# Intellij
.idea/
*.iml
*.iws

# Maven
log/
target/


#git