Compare commits

...

13 Commits

Author SHA1 Message Date
6c10f518ce vscode editor for rebase 2025-10-31 10:20:25 +03:00
5e31fe1262 Merge branch 'gpg' 2025-02-16 03:28:26 +03:00
fd6b41cf76 gpg sign 2025-02-16 03:26:29 +03:00
43bbdb0f42 automatic fetch prune 2025-02-10 15:14:39 +03:00
f7c70c43a0 SSH sign added 2025-01-20 22:26:22 +03:00
5e6547886d ssh test update 2024-10-21 04:16:33 +03:00
acd3950b01 restrict image sizes for vscode 2024-10-20 19:14:08 +03:00
2dfdff321a broken link fix 2024-10-20 18:50:42 +03:00
efb02b9abc move files under src folder 2024-10-20 18:48:59 +03:00
7496ec5af3 spoilers for VSCode images 2024-10-20 18:29:31 +03:00
76d45aa993 small changes 2024-10-20 03:09:36 +03:00
316432edf8 ssh man update 2024-10-20 02:34:53 +03:00
99e55df488 VSCode install update 2024-10-20 02:07:05 +03:00
58 changed files with 277 additions and 79 deletions

View File

@@ -1,11 +1,13 @@
## Полезные мануалы
* [Установка GIT в windows](man/GIT-install-win.md)
* [Установка TortoiseGit](man/TortoiseGit.md)
* [Конфигурация GIT](man/GIT-config.md)
* [SSH авторизация по ключам](man/SSH-key-auth-win.md)
* [GIT в Bash](man/GIT-Bash.md)
* [VS Code](man/VS-Code.md)
* [Windows Terminal](man/Windows-Terminal.md)
* [WSL2](man/WSL.md)
* [Установка GIT в windows](src/GIT-install-win.md)
* [Конфигурация GIT](src/GIT-config.md)
* [SSH авторизация по ключам](src/SSH-key-auth-win.md)
* [SSH подпись](src/GIT-SSH-sign.md)
* [GPG подпись](src/GIT-GPG-sign.md)
* [Установка TortoiseGit](src/TortoiseGit.md)
* [GIT в Bash](src/GIT-Bash.md)
* [VS Code](src/VS-Code.md)
* [Windows Terminal](src/Windows-Terminal.md)
* [WSL2](src/WSL.md)

View File

@@ -1,61 +0,0 @@
# Visual Studio Code
Очень популярный редактор для разработчиков. Достаточно простой с кучей дополнительных расширений которые можно установить из маркета.
В отличие от Eclipse быстрый, минималистичный и намного проще в настройке.
<p align="center"> <img src="images/vscode_demo.gif"></p>
<p align="center"> <img src="images/vscode_graph_demo.gif"></p>
<p align="center"> <img src="images/vscode_ssh_demo.gif"></p>
<p align="center"> <img src="images/vscode_wsl_demo.gif"></p>
Основные достоинства:
- Минималистичный
- Кроссплатформенный
- Отладка по SSH и в WSL
- Простой в настройке
- Встроенный Git
- Терминал
- поддерживает SWO и SEGGER RTT
## Установка
На [официальном сайте](https://code.visualstudio.com/Download) можно скачать различные версии для установки.
- User (только для одного пользователя)
- System (если пользователь Администратор)
Если при запуске инсталятора выскакивает похожее окно, то вы пытаетесь установить не ту версию.
<p align="center"> <img src="images/vscode1.png"></p>
Функционал VS Code можно значительно расширить используя дополнительные расширения из маркета.
Для нашего случая устанавливаем следующее:
- [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
- [Better C++ Syntax](https://marketplace.visualstudio.com/items?itemName=jeff-hykin.better-cpp-syntax)
- [Git Graph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph)
- [Remote - SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh)
- [Remote - SSH: Editing Configuration Files](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit)
- [Remote - WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl)
- [Cortex-Debug](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) - поддержка отладки с различными программаторами
- [stm32-for-vscode](https://marketplace.visualstudio.com/items?itemName=bmd.stm32-for-vscode) - надстройка над Cotex-Debug для автоматизации установки Toolchain и корневого Make-файла
## Настройка
Чтобы открыть настройки нажимаем Ctrl+,
Полезные настройки:
- Files: Auto save - автоматическое сохранение файлов
- Window: Title - настройка заголовка окна. Удобно установить в `${rootName}${separator}${rootPath}`
- Editor: Render Whitespace - показать невидимые символы. Полезно для мейкфайлов.
## VS Code uninstall
Если нужно полностью удалить VS Code, то кроме обычного удаления через Uninstall, нужно также почистить следующие папки:
- `C:\Program Files\Microsoft VS Code`
- `%USERPROFILE%\.vscode`
- `%AppData%\Code`

View File

@@ -10,6 +10,6 @@
Если кто-то захочет разобраться во всех тонкостях настройки Bash, то он это сделает по официальной документации, и ничто не сможет его остановить. Я же предложу простой путь. Просто скачать и установить мою конфигурацию.
Для этого скачиваем [архив конфигурации](../../../../raw/branch/main/home-config.zip) и распаковываем в домашнюю папку пользователя с заменой. Не забываем перелогиниться чтобы изменения вступили в силу.
Для этого скачиваем [архив конфигурации](../../../../raw/branch/main/src/home-config/home-config.zip) и распаковываем в домашнюю папку пользователя с заменой. Не забываем перелогиниться чтобы изменения вступили в силу.
Теперь Bash будет автоматически распознавать что вы находитесь внутри репозитория Git и делать подсказки по работе.

151
src/GIT-GPG-sign.md Normal file
View File

@@ -0,0 +1,151 @@
# GPG подпись
<!-- https://www.youtube.com/watch?v=2CwsoGw2coc -->
<!-- https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key -->
GPG ключи по сравнению с SSH ключами имеют более развитый функционал.
- настройка специализации ключа (шифрование, подпись, авторизация, создание подключей);
- отзыв ранее выпущенных ключей;
- настройка срока действия ключей с возможностью продления в будущем;
- привязка ключей к имени пользователя и почте;
- возможность загрузки публичных ключей на сервера ключей;
Под Windows утилита gpg идет вместе с git. Так что можно работать сразу после установки git.
Все свои файлы gpg хранит в `~/.gnupg/`
Полезно добавить в конфиг:
```
cat << --- >> ~/.gnupg/gpg.conf
keyid-format LONG
with-fingerprint
no-greeting
armor
---
```
Полезные команды:
```
gpg -k --keyid-format=long # Посмотреть публичные ключи
gpg -K --keyid-format=long # Посмотреть приватные ключи
gpg --full-generate-key # Генерация пары ключей
gpg -a --export <key-id> # Экспорт публичного ключа
gpg -a --export-secret-keys <key-id> # Экспорт секретного ключа
gpg --import <file> # Импорт ключа
gpg --delete-key <key-id> # Удаление публичного ключа
gpg --delete-secrete-key <key-id> # Удаление секретного ключа
git config --global user.signingkey <key-id>
```
Обозначения типов ключей:
```
sec - secret primary key (секретный основной ключ)
pub - public primary key (публичный основной ключ)
ssb - secret sub-key (секретный сабключ)
sub - public sub-key (публичный сабключ)
> - ключ есть на карте
# - нет секретного ключа, только заглушка для сабключа
```
## Генерация ключей
Создаем основной (primary) ключ:
```
gpg --expert --full-generate-key
```
Выбираем один из вариантов:
```
RSA (sign only) # создание только основного ключа c правами [SC]
RSA (set your own capabilities) # создание только основного ключа c настраиваемыми правами
```
Этот ключ нужен для генерации других сабключей.
## Генерация сабключей
Для генерации сабключей заходим в консоль gpg:
```
gpg --expert --edit-key [id]
> addkey
...
> save
```
`[id]` - здесь и далее в качестве id можно использовать id ключа, имя или почту пользователя.
`?` - список все комманд
`addkey` - добавить новый сабключ
`change-usage` - поменять флаги usage
`save` - не забываем сохранить результаты перед выходом
## Экспорт ключей
Прежде удалять мастер ключ или переносить сабключи на карту, необходимо сделать бекап (экспорт) всей нашей работы.
```
gpg -a --export-secret-key [id] > master.key # Экспорт основного ключа
gpg -a --export-secret-subkeys [id] > subkeys.key # Экспорт сабключей
gpg -a --export [id] public.key # Экспорт публичных ключей
```
## Сохранение на аппаратный ключ
<!-- https://fido.ftsafe.com/openpgp/ -->
<!-- https://rgoulter.com/blog/posts/programming/2022-06-10-a-visual-explanation-of-gpg-subkeys.html -->
```
gpg --card-status # посмотреть информацию по карте
gpg --edit-key [id] # входим в режим редактирования
> key 1 # выбираем первый сабключ
> keytocard # переносим его на карту
> key 1 # снимаем старый выбор
> key 2 # выбираем следующий сабключ
> keytocard # переносим его на карту
> key 2 # снимаем старый выбор
> key 3 # выбираем следующий сабключ
> keytocard # переносим его на карту
> key 3 # снимаем старый выбор
> save # сохраняем (локальные ключи сотрутся!)
```
## Удаление секретных ключей
Удалем секретный ключ:
```
gpg --delete-secret-keys [id]
```
Удалятся все секретные ключи. Для того чтобы gpg понял что секретные ключи находятся на карте выполняем:
```
gpg --card-status
```
Для использования карты на новом компьютере достаточно импортировать public ключ и запустить `gpg --card-status`.
## Загрузка public ключа на сервер ключей
Существует огромное кол-во серверов ключей, для примера будем использовать:
https://keys.openpgp.org/
Ключи лучше загружать через web-интерфес чтобы получить ссылку для верификации почты.
После того как public ключ загружен на сервер, можно добавить URL ключа в настройки карты. Тогда будет возможно настравить новый компьютер совсем просто:
```
gpg --card-edit # Заходим в настройки карты
> fetch # Скачиваем public ключ
> quit # Выходим
gpg --edit-key [id] # Заходим в редактирование
> trust # Редактируем trust (по умолчанию она сброшена в "unknown")
> 5 # Савим "ultimate" (Это наш собственный ключ, доверяем.)
> save # Сохраняем
```
И сразу можно подписывать коммиты :)
## Настройка подписи коммитов в git
Подписать последний коммит `git commit --amend --no-edit -S`
Также не лишним будет добавить удобные элиасы в .ginconfig:
```
sign = commit --amend --no-edit -S
unsign = commit --amend --no-edit
signoff = commit --amend --no-edit -s
```

56
src/GIT-SSH-sign.md Normal file
View File

@@ -0,0 +1,56 @@
# SSH подпись
Как мы знаем в GIT можно указать любое имя пользователя и почтовый адрес.
Для достоверной идентификации автора существует возможность цифровой подписи коммитов.
Подписывать коммиты будем тем же самым ключом SSH который мы использовали ранее для работы с удаленными репозиториями.
<!-- https://dev.to/ccoveille/git-the-complete-guide-to-sign-your-commits-with-an-ssh-key-35bg -->
<!-- https://developer.1password.com/docs/ssh/git-commit-signing/ -->
Чтобы верифицировать подписи локально, нужно создать файл с доверенными ключами...
```
echo "$(git config --get user.name) $(cat ~/.ssh/id_rsa.pub)" >> ~/.ssh/allowed_signers
```
Добавляем соответствующие настройки в GIT:
```
git config --global gpg.format ssh # Включаем SSH для подписи
git config --global user.signingkey "~/.ssh/id_rsa.pub" # Добавляем открытый ключ
git config --global gpg.ssh.allowedSignersFile "~/.ssh/allowed_signers" # Добавляем файл доверенных подписей
git config --global commit.gpgsign true # Автоподпись для коммитов
git config --global tag.gpgsign true # Автоподпись для тэгов
```
Таким образом мой файл .gitconfig теперь выглядит так:
```
[user]
name = ARNik
email = r.anikeev@gmail.com
signingkey = ~/.ssh/id_rsa.pub
[color]
ui = true
[core]
quotepath = off # отображение русских имен файлов
[alias]
ll = log --oneline --graph --decorate --all
st = status --short
co = checkout
br = branch
ct = commit
lg = log --graph --all\
--pretty=format:'%Cred%h%Creset -%C(auto)%d %Creset%s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
[gpg]
format = ssh
[gpg "ssh"]
allowedSignersFile = ~/.ssh/allowed_signers
[commit]
gpgsign = true
[tag]
gpgsign = true
```

View File

@@ -20,10 +20,12 @@ git config секция.параметр значение
Делаем базовые настройки:
```
git config --global user.name "My name" # Имя пользователя по умолчанию для всех коммитов
git config --global user.email my@mail.com # Почта пользователя по умолчанию для всех коммитов
git config --global color.ui true # Включаем цветной вывод в командах git
git config --global core.quotepath off # Для правильного отображение русских имен файлов
git config --global user.name "My name" # Имя пользователя по умолчанию для всех коммитов
git config --global user.email my@mail.com # Почта пользователя по умолчанию для всех коммитов
git config --global color.ui true # Включаем цветной вывод в командах git
git config --global core.quotepath off # Для правильного отображение русских имен файлов
git config --global core.editor "code --wait" # Для использования vscode редактора для rebase
git config --global fetch.prune true # Автоматическая очистка remote веток удаленных на сервере
```
Дополнительно можно настроить удобные элиасы для часто используемых команд.
@@ -33,11 +35,12 @@ git config --global core.quotepath off # Для правильного от
```
[user]
name = ARNik
email = r.anikeev@gmail.com
email = arnik@arnik.ru
[color]
ui = true
[core]
quotepath = off # отображение русских имен файлов
quotepath = off # отображение русских имен файлов
editor = code --wait # vscode редактор для rebase
[alias]
ll = log --oneline --graph --decorate --all
st = status --short

View File

@@ -116,8 +116,8 @@ $ ssh -T git@repo_url
```
Что проверяю я:
```
$ ssh -T git@github.com
$ ssh -T git@git.fwdrd.ru
$ ssh -T git@git.arnik.ru
$ ssh -T git@gitea.srv.mf-t.ru -p 1022
$ ssh -T git@gitlab.srv.mf-t.ru -p 2222
```
---

View File

@@ -1,6 +1,6 @@
# Установка TortoiseGIT в windows.
Перед тем как устанавливать TortoiseGit надо [установить Git for windows](GIT-install-win).
Перед тем как устанавливать TortoiseGit надо [установить Git for windows](GIT-install-win.md).
Скачиваем с официального сайта: https://tortoisegit.org/download/

47
src/VS-Code.md Normal file
View File

@@ -0,0 +1,47 @@
# Visual Studio Code
Очень популярный редактор для разработчиков. Достаточно простой с кучей дополнительных расширений которые можно установить из маркета.
В отличие от Eclipse быстрый, минималистичный и намного проще в настройке.
<details><summary>Отладка:</summary>
<p align="center"> <img src="images/vscode_demo.gif" width="900"></p>
</details>
<details><summary>Работа с GIT:</summary>
<p align="center"> <img src="images/vscode_graph_demo.gif" width="900"></p>
</details>
<details><summary>Работа через SSH:</summary>
<p align="center"> <img src="images/vscode_ssh_demo.gif" width="900"></p>
</details>
<details><summary>Запуск из консоли:</summary>
<p align="center"> <img src="images/vscode_wsl_demo.gif" width="900"></p>
</details>
Основные достоинства:
- Минималистичный
- Кроссплатформенный
- Отладка по SSH и в WSL
- Простой в настройке
- Встроенный Git
- Терминал
- поддерживает SWO и SEGGER RTT
## Установка
На [официальном сайте](https://code.visualstudio.com/Download) можно скачать различные версии для установки.
- User (только для одного пользователя)
- System (если пользователь Администратор)
Если есть права администратора, то рекомендую устанавливать [x64 System версию](https://code.visualstudio.com/docs/?dv=win64).
Если при запуске инсталятора выскакивает похожее окно, то вы пытаетесь установить не ту версию.
<p align="center"> <img src="images/vscode1.png"></p>
## VS Code uninstall
Если нужно полностью удалить VS Code, то кроме обычного удаления через Uninstall, нужно также почистить следующие папки:
- `C:\Program Files\Microsoft VS Code`
- `%USERPROFILE%\.vscode`
- `%AppData%\Code`

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 436 KiB

After

Width:  |  Height:  |  Size: 436 KiB

View File

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 105 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

View File

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 438 KiB

After

Width:  |  Height:  |  Size: 438 KiB

View File

Before

Width:  |  Height:  |  Size: 930 KiB

After

Width:  |  Height:  |  Size: 930 KiB

View File

Before

Width:  |  Height:  |  Size: 6.1 MiB

After

Width:  |  Height:  |  Size: 6.1 MiB

View File

Before

Width:  |  Height:  |  Size: 2.2 MiB

After

Width:  |  Height:  |  Size: 2.2 MiB