Что такое Git
#Git — распределённая система контроля версий. Или коротко РСКВ.
Система контроля версий хранит изменения файлов, которые нужны пользователю. Главная цель — чтобы пользователь в любой момент имел доступ к старым версиям файлов. Вот пример СКВ. Андрей пишет выпускной диплом. Получилось три файла: введение.doc, основная_часть.doc и выводы.doc. Перед тем, как печатать новые мысли, Андрей создает папку и копирует в неё файлы. А к названию папки добавляет текущую дату. Получается "Диплом 15-03-18". И теперь если Андрей случайно удалит важные мысли в выводах, то скопирует их из старого файла.
Распределенная система хранит файлы не на одном центральном сервере, а распределённо. У клиентов — копия проекта. Если умирает сервер и стираются данные, то любой клиентский проект можно скопировать обратно на сервер, чтобы восстановить проект. Когда клиент забирает свежую версию файлов, он создаёт себе полную копию всех данных.
Гит — гибкая и мощная система. Она интереснее, чем ежедневное копирование файлов в новые каталоги. Её используют программисты, чтобы отслеживать исходный код. С гитом разработчики отправляют файлы на удаленный сервер, просматривают изменения, откатывают отдельные файлы или весь проект к прежнему виду. А если модуль вдруг перестаёт работать, то в Гите видно, кто поломал проект.
#Git — распределённая система контроля версий. Или коротко РСКВ.
Система контроля версий хранит изменения файлов, которые нужны пользователю. Главная цель — чтобы пользователь в любой момент имел доступ к старым версиям файлов. Вот пример СКВ. Андрей пишет выпускной диплом. Получилось три файла: введение.doc, основная_часть.doc и выводы.doc. Перед тем, как печатать новые мысли, Андрей создает папку и копирует в неё файлы. А к названию папки добавляет текущую дату. Получается "Диплом 15-03-18". И теперь если Андрей случайно удалит важные мысли в выводах, то скопирует их из старого файла.
Распределенная система хранит файлы не на одном центральном сервере, а распределённо. У клиентов — копия проекта. Если умирает сервер и стираются данные, то любой клиентский проект можно скопировать обратно на сервер, чтобы восстановить проект. Когда клиент забирает свежую версию файлов, он создаёт себе полную копию всех данных.
Гит — гибкая и мощная система. Она интереснее, чем ежедневное копирование файлов в новые каталоги. Её используют программисты, чтобы отслеживать исходный код. С гитом разработчики отправляют файлы на удаленный сервер, просматривают изменения, откатывают отдельные файлы или весь проект к прежнему виду. А если модуль вдруг перестаёт работать, то в Гите видно, кто поломал проект.
Состояния файлов в 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-репозиторий и рабочая копия файлов для проекта. Вы работаете с классами, изменяете файлы и вскоре проект достигает состояния, которое нужно сохранить. И вы выполняете команды 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 #обучение
Сайт 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
Создать ветку для задачи
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 и их решения. Вопросы разделены по категориям, а ответы написаны понятным языком. Плюс в конце линки на книги, туториалы и 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
Пока все обсуждают, что 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 "как переименовать ветку"
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
git branch --merged | grep -v \* | xargs git branch -D
gitignore для java и maven проектов
простенький gitignore для мелких проектов, чтобы был всегда под рукой
#git
простенький gitignore для мелких проектов, чтобы был всегда под рукой
# Intellij
.idea/
*.iml
*.iws
# Maven
log/
target/
#git