Команды Git. Часть 5.2.
Еще несколько полезных команд Git для начинающих:
Команда ниже показывает изменения, внесенные в файл file.txt с момента последней фиксации.
git diff file.txt
Управление ветками
git branch
Эта команда используется для управления ветвями в вашем репозитории.
Команда ниже создает новую ветку с именем new_feature.
git branch new_feature
Переключение между ветками
git checkout
Эта команда используется для переключения между ветвями.
Команда ниже переключает на ветку new_feature.
git checkout new_feature
Объединение изменений
git merge
Эта команда используется для объединения изменений из одной ветки в другую.
Команда ниже объединяет изменения, сделанные в ветке new_feature, с текущей веткой.
git merge new_feature
Клонирование
git clone
Эта команда используется для клонирования существующего репозитория.
Команда ниже клонирует репозиторий https://github.com/user/repo.git на ваш локальный компьютер.
git clone https://github.com/user/repo.git
Это лишь некоторые из многих команд Git, которые могут помочь вам управлять своим кодом и сотрудничать с другими разработчиками. По мере знакомства с Git вы откроете для себя еще больше команд и функций, которые помогут вам работать более эффективно и результативно. Независимо от того, являетесь ли вы новичком или опытным разработчиком, знание этих команд необходимо для успешной разработки программного обеспечения.
👉 JavaStart. Подписаться
Еще несколько полезных команд Git для начинающих:
Команда ниже показывает изменения, внесенные в файл file.txt с момента последней фиксации.
git diff file.txt
Управление ветками
git branch
Эта команда используется для управления ветвями в вашем репозитории.
Команда ниже создает новую ветку с именем new_feature.
git branch new_feature
Переключение между ветками
git checkout
Эта команда используется для переключения между ветвями.
Команда ниже переключает на ветку new_feature.
git checkout new_feature
Объединение изменений
git merge
Эта команда используется для объединения изменений из одной ветки в другую.
Команда ниже объединяет изменения, сделанные в ветке new_feature, с текущей веткой.
git merge new_feature
Клонирование
git clone
Эта команда используется для клонирования существующего репозитория.
Команда ниже клонирует репозиторий https://github.com/user/repo.git на ваш локальный компьютер.
git clone https://github.com/user/repo.git
Это лишь некоторые из многих команд Git, которые могут помочь вам управлять своим кодом и сотрудничать с другими разработчиками. По мере знакомства с Git вы откроете для себя еще больше команд и функций, которые помогут вам работать более эффективно и результативно. Независимо от того, являетесь ли вы новичком или опытным разработчиком, знание этих команд необходимо для успешной разработки программного обеспечения.
👉 JavaStart. Подписаться
👍7❤2🔥2✍1
Иногда на собеседовании Junior Java разработчика или стажера могут попросить привести пример, когда какая-либо коллекция выбрасывает UnsupportedOperationException.
Ответ на самом деле очень простой, запомните:
Создаем неизменяемую коллекцию, например, лист и добавляем в нее элемент. Получаем исключение в процессе выполнения программы (не на стадии компиляции).
👉 JavaStart. Подписаться
Ответ на самом деле очень простой, запомните:
Создаем неизменяемую коллекцию, например, лист и добавляем в нее элемент. Получаем исключение в процессе выполнения программы (не на стадии компиляции).
👉 JavaStart. Подписаться
👍9🔥4⚡2✍2❤1🫡1
Команды Git. Часть 5.3.
Один из необычных вопросов, который могут задать на собесе касательно Git звучит следующим образом:
Что такое HEAD ?
Начнем с того, что HEAD – это указатель на коммит в вашем репозитории, который станет родителем следующего коммита.
Давайте посмотрим на первую картинку – эти три коммита создавались в порядке слева направо от a98cce4 к 2b826bb. Каждый раз, когда мы отправляли новый коммит в репозиторий, HEAD смещался и указывал на него. После того как мы отправили коммит с id = 2b826bb, указатель HEAD стал показывать на него, т.е. данный коммит будет родителем для следующего.
И когда мы сделаем еще один коммит, HEAD сместится на него (вторая картинка).
Когда вы переключаетесь с ветки на ветку, используя операцию checkout, то в вашем репозитории указатель HEAD будет переключаться между последними коммитами выбираемых вами ветвей.
👉 JavaStart. Подписаться
Один из необычных вопросов, который могут задать на собесе касательно Git звучит следующим образом:
Что такое HEAD ?
Начнем с того, что HEAD – это указатель на коммит в вашем репозитории, который станет родителем следующего коммита.
Давайте посмотрим на первую картинку – эти три коммита создавались в порядке слева направо от a98cce4 к 2b826bb. Каждый раз, когда мы отправляли новый коммит в репозиторий, HEAD смещался и указывал на него. После того как мы отправили коммит с id = 2b826bb, указатель HEAD стал показывать на него, т.е. данный коммит будет родителем для следующего.
И когда мы сделаем еще один коммит, HEAD сместится на него (вторая картинка).
Когда вы переключаетесь с ветки на ветку, используя операцию checkout, то в вашем репозитории указатель HEAD будет переключаться между последними коммитами выбираемых вами ветвей.
👉 JavaStart. Подписаться
👍8🔥3❤2✍1👨💻1
Команды Git. Часть 5.4.
Распространенная команда git cherry-pick.
На собеседовании начинающего Java разработчика могут спросить - Что такое cherry-pick? Ответ нужно знать, потому что это очень нужная команда Git в процессе разработки ПО.
Команда git cherry-pick позволяет применять коммиты из одной ветки в другую. Это может быть полезно, если вы хотите взять определенный коммит из одной ветки и применить его в другой ветке без переноса всей истории коммитов.
Чтобы использовать git cherry-pick, нужно выполнить следующие шаги:
1) Перейти в ту ветку, в которую мы хотим применить коммит.
2) Выполнить команду git cherry-pick <commit-hash>,
где <commit-hash> - это хэш-код коммита, который мы хотим применить.
Давайте посмотрим на пример использования git cherry-pick. Предположим, что у нас есть две ветки: master и feature. Мы хотим применить коммит с хэш-кодом 123abc из ветки feature в ветку master. Выполним следующие команды:
– git checkout master (переключились на ветку master)
– git cherry-pick 123abc (применяем коммит с хэш-кодом 123abc в текущую ветку master, на которой находимся)
👉 JavaStart. Подписаться
Распространенная команда git cherry-pick.
На собеседовании начинающего Java разработчика могут спросить - Что такое cherry-pick? Ответ нужно знать, потому что это очень нужная команда Git в процессе разработки ПО.
Команда git cherry-pick позволяет применять коммиты из одной ветки в другую. Это может быть полезно, если вы хотите взять определенный коммит из одной ветки и применить его в другой ветке без переноса всей истории коммитов.
Чтобы использовать git cherry-pick, нужно выполнить следующие шаги:
1) Перейти в ту ветку, в которую мы хотим применить коммит.
2) Выполнить команду git cherry-pick <commit-hash>,
где <commit-hash> - это хэш-код коммита, который мы хотим применить.
Давайте посмотрим на пример использования git cherry-pick. Предположим, что у нас есть две ветки: master и feature. Мы хотим применить коммит с хэш-кодом 123abc из ветки feature в ветку master. Выполним следующие команды:
– git checkout master (переключились на ветку master)
– git cherry-pick 123abc (применяем коммит с хэш-кодом 123abc в текущую ветку master, на которой находимся)
👉 JavaStart. Подписаться
🔥7👍5❤2✍1
Что делает команда git clone?
Anonymous Quiz
94%
Клонирует репозиторий Git на локальную машину
5%
Создаёт новую ветку в репозитории Git
1%
Отправляет изменения в удаленный репозиторий Git
Интересный случай из жизни касательно Git.
Однажды на моем проекте произошел такой случай – стажер, который писал на Java, удалил свою ветку с кодом проекта, над которым работал в течение нескольких месяцев, только представьте свои ощущения в такой момент)
Он потратил много времени на поиск способа восстановления удаленной ветки, испытав разные эмоции: от паники до смирения. В конечном итоге, когда он обратился ко мне за помощью, он узнал новую для него команду Git и смог восстановить потерянную ветку, используя git reflog.
Этот случай подчеркивает важность регулярного создания резервных копий и внимательного отношения к работе с Git.
А также показательно, что если у вас что-то не получается уже очень долгое время, то пора обращаться за помощью к тем, кто подскажет и направит на путь истинный. Чтобы долго не останавливаться и двигаться дальше.
👉 JavaStart. Подписаться
Однажды на моем проекте произошел такой случай – стажер, который писал на Java, удалил свою ветку с кодом проекта, над которым работал в течение нескольких месяцев, только представьте свои ощущения в такой момент)
Он потратил много времени на поиск способа восстановления удаленной ветки, испытав разные эмоции: от паники до смирения. В конечном итоге, когда он обратился ко мне за помощью, он узнал новую для него команду Git и смог восстановить потерянную ветку, используя git reflog.
Этот случай подчеркивает важность регулярного создания резервных копий и внимательного отношения к работе с Git.
А также показательно, что если у вас что-то не получается уже очень долгое время, то пора обращаться за помощью к тем, кто подскажет и направит на путь истинный. Чтобы долго не останавливаться и двигаться дальше.
👉 JavaStart. Подписаться
👍14🔥4❤2⚡2🤔1
Какая команда используется для добавления изменений в индекс Git?
Anonymous Quiz
40%
git commit
49%
git add
11%
git push
👍7😁2🤔2✍1🤯1
Функциональный интерфейс в Java.
Начнем по-тихоньку подбираться к очень важной библиотеке Stream API в Java.
Термин функциональный интерфейс был введен в Java 8. Это интерфейс, который содержит только один абстрактный (не реализованный) метод. Может содержать стандартные и статические, которые имеют реализацию, в дополнение к одному нереализованному.
Вот пример:
public interface MyFunctionalInterface {
public void execute();
}
Вышеуказанный интерфейс содержит только один метод, и этот метод не имеет реализации.
Обычно интерфейс не содержит реализации методов, которые он объявляет, но он может содержать реализации в методах по умолчанию (default) или в статических (static).
На картинке приведен еще один пример с реализациями некоторых методов. Этот интерфейс все еще считается функциональным, поскольку он содержит только один не реализованный метод.
К функциональному интерфейсу можно добавить аннотацию @FunctionalInterface. Это не обязательно, но при наличии данной аннотации код не скомпилируется, если будет больше или меньше, чем 1 абстрактный метод.
Основное назначение функционального интерфейса – это использование в лямбда выражениях и method reference.
Рекомендуется добавлять @FunctionalInterface. Это позволит использовать интерфейс в лямбда выражениях, не остерегаясь того, что кто-то добавит в интерфейс новый абстрактный метод и он перестанет быть функциональным.
👉 JavaStart. Подписаться
Начнем по-тихоньку подбираться к очень важной библиотеке Stream API в Java.
Термин функциональный интерфейс был введен в Java 8. Это интерфейс, который содержит только один абстрактный (не реализованный) метод. Может содержать стандартные и статические, которые имеют реализацию, в дополнение к одному нереализованному.
Вот пример:
public interface MyFunctionalInterface {
public void execute();
}
Вышеуказанный интерфейс содержит только один метод, и этот метод не имеет реализации.
Обычно интерфейс не содержит реализации методов, которые он объявляет, но он может содержать реализации в методах по умолчанию (default) или в статических (static).
На картинке приведен еще один пример с реализациями некоторых методов. Этот интерфейс все еще считается функциональным, поскольку он содержит только один не реализованный метод.
К функциональному интерфейсу можно добавить аннотацию @FunctionalInterface. Это не обязательно, но при наличии данной аннотации код не скомпилируется, если будет больше или меньше, чем 1 абстрактный метод.
Основное назначение функционального интерфейса – это использование в лямбда выражениях и method reference.
Рекомендуется добавлять @FunctionalInterface. Это позволит использовать интерфейс в лямбда выражениях, не остерегаясь того, что кто-то добавит в интерфейс новый абстрактный метод и он перестанет быть функциональным.
👉 JavaStart. Подписаться
👍13✍3❤1🔥1
Что делает команда git branch?
Anonymous Quiz
49%
Создаёт новую ветку в репозитории Git
19%
Переключается на другую ветку в репозитории Git
32%
Показывает список веток в репозитории Git
😱6🔥3👍2✍1🤔1
Касательно функциональных интерфейсов в Java есть один тонкий момент, о котором нужно знать, идя на собеседование, причем неважно - джуниор ты или синьор, подловить тут можно любого!)
Этот тонкий момент описан в Java Language Specification: “interfaces do not inherit from Object, but rather implicitly declare many of the same methods as Object.”
Это означает, что функциональные интерфейсы могут содержать дополнительно абстрактные методы, определенные в классе Object. Код на картинке валиден, ошибок компиляции и во времени выполнения не будет.
Будьте внимательны на собеседовании! 🤘
👉 JavaStart. Подписаться
Этот тонкий момент описан в Java Language Specification: “interfaces do not inherit from Object, but rather implicitly declare many of the same methods as Object.”
Это означает, что функциональные интерфейсы могут содержать дополнительно абстрактные методы, определенные в классе Object. Код на картинке валиден, ошибок компиляции и во времени выполнения не будет.
Будьте внимательны на собеседовании! 🤘
👉 JavaStart. Подписаться
👍9❤2✍1🔥1
Какая команда используется для отправки изменений в удаленный репозиторий Git?
Anonymous Quiz
79%
git push
18%
git commit
3%
git add
👍5🔥2🤔1
Анонимный класс в Java.
Нужно обязательно иметь представление о том, что такое анонимный класс, чтобы ответить на собеседовании!
И так, Анонимные классы – это классы, что не имеют имени и их создание происходит в момент инициализации объекта. Такие классы много где используются в Java и с ними вы ещё часто будете сталкиваться.
Рассмотрим небольшой пример.
Предположим что у нас есть интерфейс Auto с методом void flyingMoto(), который необходимо реализовать. Для реализации можно создать отдельный класс (например, FamilyAuto или WorkAuto), в нём реализовать интерфейс (заимплементить наш интерфейс Auto), далее создать объект на основе класса и через объект ссылаться на методы классы.
Звучит логично, но не оправдано с точки зрения количества действий.
Куда проще создать объект и для него сразу выполнить создание анонимного класса. Так и читается легче и меньше кода (мы не создали целый отдельный класс для имплементации интерфейса).
👉 JavaStart. Подписаться
Нужно обязательно иметь представление о том, что такое анонимный класс, чтобы ответить на собеседовании!
И так, Анонимные классы – это классы, что не имеют имени и их создание происходит в момент инициализации объекта. Такие классы много где используются в Java и с ними вы ещё часто будете сталкиваться.
Рассмотрим небольшой пример.
Предположим что у нас есть интерфейс Auto с методом void flyingMoto(), который необходимо реализовать. Для реализации можно создать отдельный класс (например, FamilyAuto или WorkAuto), в нём реализовать интерфейс (заимплементить наш интерфейс Auto), далее создать объект на основе класса и через объект ссылаться на методы классы.
Звучит логично, но не оправдано с точки зрения количества действий.
Куда проще создать объект и для него сразу выполнить создание анонимного класса. Так и читается легче и меньше кода (мы не создали целый отдельный класс для имплементации интерфейса).
👉 JavaStart. Подписаться
👍9❤2🔥2✍1🆒1