<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Тимур Полатов: заметки с тегом github</title>
<link>https://polatov.me/?go=tags/github/</link>
<description>делю на ноль, обогащаю уран</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.2 (v4116e)</generator>

<itunes:owner>
<itunes:name></itunes:name>
<itunes:email>timur@polatov.me</itunes:email>
</itunes:owner>
<itunes:subtitle>делю на ноль, обогащаю уран</itunes:subtitle>
<itunes:image href="https://polatov.me/pictures/userpic/userpic-square@2x.jpg?1694404576" />
<itunes:explicit>no</itunes:explicit>

<item>
<title>Решение конфликта между локальной и удаленной ветками в Git</title>
<guid isPermaLink="false">6</guid>
<link>https://polatov.me/?go=all/reshenie-konflikta-mezhdu-lokalnoy-i-udalennoy-vetkami-v-git/</link>
<pubDate>Tue, 14 Nov 2023 11:42:56 +0500</pubDate>
<author></author>
<comments>https://polatov.me/?go=all/reshenie-konflikta-mezhdu-lokalnoy-i-udalennoy-vetkami-v-git/</comments>
<description>
&lt;p&gt;В процессе работы с Git часто возникают ситуации, когда изменения, внесенные в удаленный репозиторий, не синхронизированы с локальной копией. Это может привести к ошибкам при попытке отправить локальные изменения на удаленный сервер.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Сценарий конфликта:&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;1. Изменения в удаленном репозитории&lt;/b&gt;: Предположим, что в удаленном репозитории на GitHub были внесены изменения другими участниками проекта.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. Локальные изменения&lt;/b&gt;: В то же время, разработчик вносит изменения в локальную копию проекта, не зная о новых изменениях в удаленном репозитории.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. Попытка отправки изменений&lt;/b&gt;: При попытке отправить локальные изменения на GitHub, разработчик сталкивается с ошибкой, указывающей на расхождение между локальной и удаленной версиями.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Пример ошибки:&lt;/b&gt;&lt;/h2&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;user@laptop ~/dev/my_project $ git push
To github.com:user/my_project.git
 ! [rejected]        main -&amp;gt; main (fetch first)
error: не удалось отправить некоторые ссылки в «github.com:user/my_project.git»
подсказка: Updates were rejected because the remote contains work that you do not
подсказка: have locally. This is usually caused by another repository pushing to
подсказка: the same ref. If you want to integrate the remote changes, use
подсказка: &amp;#039;git pull&amp;#039; before pushing again.
подсказка: See the &amp;#039;Note about fast-forwards&amp;#039; in &amp;#039;git push --help&amp;#039; for details.&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Методы решения:&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;1. Слияние (Merge)&lt;/b&gt;: Этот метод объединяет изменения из удаленной ветки с локальными изменениями, создавая новый коммит.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;git config pull.rebase false
git pull origin main&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;b&gt;2. Перебазирование (Rebase)&lt;/b&gt;: Перебазирование применяет локальные изменения поверх изменений удаленной ветки.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;git config pull.rebase true
git pull origin main&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Разрешение конфликтов:&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;В процессе слияния или перебазирования могут возникнуть конфликты. Потребуется вручную разрешить эти конфликты, выбрав подходящие изменения, и затем продолжить процесс слияния или перебазирования.&lt;/p&gt;
</description>
</item>

<item>
<title>Как запушить изменения в GitHub</title>
<guid isPermaLink="false">4</guid>
<link>https://polatov.me/?go=all/kak-zapushit-izmeneniya-v-github/</link>
<pubDate>Wed, 08 Nov 2023 10:30:11 +0500</pubDate>
<author></author>
<comments>https://polatov.me/?go=all/kak-zapushit-izmeneniya-v-github/</comments>
<description>
&lt;p&gt;Для публикации изменений на GitHub необходимо выполнить следующие команды:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. Добавление изменений в индекс Git:&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;git add .&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Эта команда добавляет все измененные файлы в индекс для следующего коммита. Можно указать конкретные файлы вместо точки.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. Создание коммита с описанием изменений:&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;git commit -m &amp;quot;Описание изменений&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Сообщение коммита должно кратко описывать произведенные изменения.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. Отправка изменений в удаленный репозиторий:&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;git push origin main&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;`origin` — имя удаленного репозитория, `main` — имя ветки для публикации. Имя ветки может отличаться и должно соответствовать ветке, предназначенной для изменений.&lt;/p&gt;
&lt;p&gt;При первой публикации изменений или при изменении настроек доступа Git может запросить учетные данные GitHub — имя пользователя и пароль или токен доступа.&lt;/p&gt;
&lt;p&gt;После выполнения этих команд изменения будут отправлены в удаленный репозиторий на GitHub.&lt;/p&gt;
</description>
</item>


</channel>
</rss>