# QSO-soft update

{% hint style="info" %}
Мы можем внести изменения или добавить различные модули в софт, который вы уже установили и запустили. В этом разделе покажу, что делать, чтобы каждый раз не качать его с нуля и каждый раз не настраивать его.
{% endhint %}

## Есть 3 варианта обновления:

### 1. Без конфликтов

Давайте рассмотрим первый вариант.

```bash
git fetch & git pull
```

Данный вариант обновления подойдёт, если мы не вносили изменения в файлы в которые вы вносили изменения. Обновление пройдёт быстро и легко.&#x20;

{% hint style="info" %}
Даже если вы запустили софт, а мы попросили сделать обновление, то вы можете остановить софт. Выполнить команды в терминале для обновления и запустить снова софт через режим восстановления.
{% endhint %}

<figure><img src="https://2167770735-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdxvcw5hybcb3iGX5xC7P%2Fuploads%2FsuCcfZ8uF87fdJdrIV8w%2Fimage.png?alt=media&#x26;token=3e1d6022-c779-4df6-a5c3-2f7b7fac8ebe" alt=""><figcaption></figcaption></figure>

Обновление выполнено успешно, поздравляю!

***

### 2. С конфликтов + VS Code

Теперь давайте рассмотрим второй вариант. Более сложный с конфликтами. \
Вы обычно вносите изменения в settings.ts и routes, но когда пробуете сделать всё те же команды, то получаете ошибку

```bash
git fetch & git pull
```

<figure><img src="https://2167770735-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdxvcw5hybcb3iGX5xC7P%2Fuploads%2FjSkHX7e0GMveg27RPGVU%2Fimage.png?alt=media&#x26;token=3f0da9d3-f666-4569-817b-896a965872e1" alt=""><figcaption><p>Вызов команды: git pull </p></figcaption></figure>

Вот пример ошибки выше во время обновления с которой вы можете столкнуться, если у нас с вами возникли конфликты. Из-за изменений в одних и тех же файлах. В данном случае вам нужно отменить свои изменения в файле который указан в ошибке.

<figure><img src="https://2167770735-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdxvcw5hybcb3iGX5xC7P%2Fuploads%2FMoIEOXGgPNSwTqMiQyTH%2Fimage.png?alt=media&#x26;token=598b082b-7011-4681-b100-f843ea17171a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2167770735-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdxvcw5hybcb3iGX5xC7P%2Fuploads%2FV6BsLv9Kn8f7jUzbwLMC%2Fimage.png?alt=media&#x26;token=c35990cd-c202-4753-b819-c4e39f90f7be" alt=""><figcaption></figcaption></figure>

И когда у нас уже нет конфликтов вы можете сделать обновление такой же командой

<pre class="language-bash"><code class="lang-bash"><strong>git fetch &#x26; git pull
</strong></code></pre>

Обновление выполнено успешно, поздравляю!

***

### 3. С конфликтом + stash

Третий вариант подойдёт, если у вас нет возможности запустить VS Code

<pre class="language-bash"><code class="lang-bash"><strong>git stash &#x26; git fetch &#x26; git pull
</strong></code></pre>

По сути команды все те же, кроме одной и это git stash.\
Данная команда скрывает все ваши изменения во всех ваших файлах, кроме серых файлов.

<figure><img src="https://2167770735-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdxvcw5hybcb3iGX5xC7P%2Fuploads%2Fkc6z1hu08qdKTJ0GwgZY%2Fimage.png?alt=media&#x26;token=b090b6f3-407b-4728-9e9b-edcab52451be" alt=""><figcaption><p>Пример "серых" файлов, которые добавлены в .gitignore</p></figcaption></figure>

После того, как вы скрыли ваши изменения и сделали обновление, то у вас всё еще есть возможность глянуть изменения, которые у вас были до этого и скопировать их. Для этого сделайте действия из скринов ниже.

<figure><img src="https://2167770735-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdxvcw5hybcb3iGX5xC7P%2Fuploads%2F6wVsfDKbE242XmSviw6O%2Fimage.png?alt=media&#x26;token=87c2b278-b2eb-4d5b-a1bd-dd8a5ba5420e" alt="" width="340"><figcaption></figcaption></figure>

<figure><img src="https://2167770735-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdxvcw5hybcb3iGX5xC7P%2Fuploads%2FxyZtd01XD0tdlTqAwJ6e%2Fimage.png?alt=media&#x26;token=c26d3dd8-49fa-43c0-8a5f-c5d7b4f2f4b0" alt=""><figcaption><p>Пример ваших изменений, которые вы скрыли через git stash</p></figcaption></figure>
