mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 23:32:37 +03:00
reorganize homeworks structure for parts 1-3
This commit is contained in:
2
src/homework/02-git/2.1/readme.md
Normal file
2
src/homework/02-git/2.1/readme.md
Normal file
@@ -0,0 +1,2 @@
|
||||
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-01-vcs/README.md)
|
||||
по теме "Системы контроля версий".
|
||||
14
src/homework/02-git/2.1/task1.md
Normal file
14
src/homework/02-git/2.1/task1.md
Normal file
@@ -0,0 +1,14 @@
|
||||
## gitignore
|
||||
|
||||
Создана директория [src/terraform](/src/terraform), добавлен файл: [terraform/.gitignore](/src/terraform/.gitignore).
|
||||
|
||||
Файлы, которые будут проигнорированы git:
|
||||
|
||||
* Любые файлы, которые находятся в директории `.terraform` (в любом месте глубже по файловой системе)
|
||||
* Файлы с расширением `.tfstate`, либо содержащие в названии `.tfstate.`
|
||||
* Файлы с названием `crash.log`
|
||||
* Файлы, которые начинаются с `crash.` и имеют расширение `.log`
|
||||
* Файлы с расширением `.tfvars`
|
||||
* Файлы с названием `override.tf` или `override.tf.json`
|
||||
* Файлы, название которых заканчивается на `_override.tf` или `_override.tf.json`
|
||||
* Файлы с названием `.terraformrc` или `terraform.rc`
|
||||
8
src/homework/02-git/2.2/readme.md
Normal file
8
src/homework/02-git/2.2/readme.md
Normal file
@@ -0,0 +1,8 @@
|
||||
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-02-base/README.md)
|
||||
по теме "Основы Git".
|
||||
|
||||
### Other repos
|
||||
|
||||
В ходе выполнения ДЗ были созданы следующие репозитории-зеркала:
|
||||
- [gitlab](https://gitlab.com/Dannecron/netology-devops)
|
||||
- [bitbucket](https://bitbucket.org/dannecron/netology-devops/src/main/)
|
||||
9
src/homework/02-git/2.3/branching/merge.sh
Normal file
9
src/homework/02-git/2.3/branching/merge.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
# display command line options
|
||||
|
||||
count=1
|
||||
while [[ -n "$1" ]]; do
|
||||
echo "Parameter #$count = $1"
|
||||
count=$(( $count + 1 ))
|
||||
shift
|
||||
done
|
||||
10
src/homework/02-git/2.3/branching/rebase.sh
Normal file
10
src/homework/02-git/2.3/branching/rebase.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
# display command line options
|
||||
|
||||
count=1
|
||||
for param in "$@"; do
|
||||
echo "Next parameter: $param"
|
||||
count=$(( $count + 1 ))
|
||||
done
|
||||
|
||||
echo "====="
|
||||
2
src/homework/02-git/2.3/readme.md
Normal file
2
src/homework/02-git/2.3/readme.md
Normal file
@@ -0,0 +1,2 @@
|
||||
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-03-branching/README.md)
|
||||
по теме "Ветвления в Git".
|
||||
120
src/homework/02-git/2.4/readme.md
Normal file
120
src/homework/02-git/2.4/readme.md
Normal file
@@ -0,0 +1,120 @@
|
||||
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-04-tools/README.md)
|
||||
по теме "Инструменты Git".
|
||||
|
||||
## Git search
|
||||
|
||||
- Какому тегу соответствует коммит `85024d3`?
|
||||
|
||||
Для поиска информации о коммите можно использовать функцию `git show`. Вывод краткой информации о коммите в саму консоль:
|
||||
|
||||
```shell
|
||||
git --no-pager show --oneline -s 85024d3
|
||||
85024d310 (tag: v0.12.23) v0.12.23
|
||||
```
|
||||
|
||||
где: `--no-pager` - отключает открытие информации в отдельной утилите, `-s` - убирает информацию о `diff`.
|
||||
|
||||
Ответ: `v0.12.23`
|
||||
|
||||
- Сколько родителей у коммита `b8d720`? Напишите их хеши.
|
||||
|
||||
Есть два способа найти необходимую информацию: через `git show` или через `git log`.
|
||||
|
||||
Для вывода информации через `git show` нужно описать определённый формат для отображения:
|
||||
```shell
|
||||
git --no-pager show --pretty=format:"commit: %h%nparents: %p%n" -s b8d720
|
||||
commit: b8d720f83
|
||||
parents: 56cd7859e 9ea88f22f
|
||||
```
|
||||
|
||||
Для вывода информации через `git log` нужно по аналогии с `git show` описать формат для отображения:
|
||||
|
||||
```shell
|
||||
git --no-pager log --pretty="commit: %h%nparents: %p%n" --graph -n 1 b8d720
|
||||
* commit: b8d720f83
|
||||
|\ parents: 56cd7859e 9ea88f22f
|
||||
| |
|
||||
```
|
||||
|
||||
Ответ: 2 родителя с хэшами `56cd7859e` и `9ea88f22f`.
|
||||
|
||||
- Перечислите хеши и комментарии всех коммитов которые были сделаны между тегами `v0.12.23` и `v0.12.24`.
|
||||
|
||||
Вывод данной информации возможен через команду `git log`. Чтобы включить в отображение сам коммит, к которому создана первая версия, нужно добавить `^`.
|
||||
|
||||
```shell
|
||||
git log --oneline --graph v0.12.23^..v0.12.24
|
||||
* 33ff1c03b (tag: v0.12.24) v0.12.24
|
||||
* b14b74c49 [Website] vmc provider links
|
||||
* 3f235065b Update CHANGELOG.md
|
||||
* 6ae64e247 registry: Fix panic when server is unreachable
|
||||
* 5c619ca1b website: Remove links to the getting started guide's old location
|
||||
* 06275647e Update CHANGELOG.md
|
||||
* d5f9411f5 command: Fix bug when using terraform login on Windows
|
||||
* 4b6d06cc5 Update CHANGELOG.md
|
||||
* dd01a3507 Update CHANGELOG.md
|
||||
* 225466bc3 Cleanup after v0.12.23 release
|
||||
* 85024d310 (tag: v0.12.23) v0.12.23
|
||||
```
|
||||
|
||||
Ответ:
|
||||
|
||||
| commit | comment |
|
||||
|-----------|-------------------------------------------------------------------|
|
||||
| b14b74c49 | [Website] vmc provider links |
|
||||
| 3f235065b | Update CHANGELOG.md |
|
||||
| 6ae64e247 | registry: Fix panic when server is unreachable |
|
||||
| 5c619ca1b | website: Remove links to the getting started guide's old location |
|
||||
| 06275647e | Update CHANGELOG.md |
|
||||
| d5f9411f5 | command: Fix bug when using terraform login on Windows |
|
||||
| 4b6d06cc5 | Update CHANGELOG.md |
|
||||
| dd01a3507 | Update CHANGELOG.md |
|
||||
| 225466bc3 | Cleanup after v0.12.23 release |
|
||||
|
||||
- Найдите коммит в котором была создана функция `func providerSource`, ее определение в коде выглядит так `func providerSource(...)` (вместо троеточия перечислены аргументы).
|
||||
|
||||
Для поиска самого раннего коммита воспользуемся возможностью команды `git log` искать содержимое по регулярному выражению (флаг `-G`).
|
||||
|
||||
```shell
|
||||
git --no-pager log --oneline -G"func providerSource(.*)"
|
||||
f5012c12d command/cliconfig: Installation methods, not installation sources
|
||||
5af1e6234 main: Honor explicit provider_installation CLI config when present
|
||||
8c928e835 main: Consult local directories as potential mirrors of providers
|
||||
```
|
||||
|
||||
Проверить правильность поиска можно посмотрев все изменения в коммите:
|
||||
```shell
|
||||
git show 8c928e835
|
||||
```
|
||||
|
||||
Ответ: `8c928e835`
|
||||
|
||||
- Найдите все коммиты в которых была изменена функция `globalPluginDirs`
|
||||
|
||||
По аналогии с предыдущим пунктом:
|
||||
|
||||
```shell
|
||||
git --no-pager log --oneline -G"func globalPluginDirs(.*)"
|
||||
8364383c3 Push plugin discovery down into command package
|
||||
```
|
||||
|
||||
Ответ: после добавления функции её изменений не было.
|
||||
|
||||
- Кто автор функции `synchronizedWriters`?
|
||||
|
||||
По аналогии с предыдущим пунктом используем функцию `git log`, только изменим формат отображения на `short`:
|
||||
|
||||
```shell
|
||||
git --no-pager log --pretty=short -G"func synchronizedWriters(.*)"
|
||||
commit bdfea50cc85161dea41be0fe3381fd98731ff786
|
||||
Author: James Bardin <j.bardin@gmail.com>
|
||||
|
||||
remove unused
|
||||
|
||||
commit 5ac311e2a91e381e2f52234668b49ba670aa0fe5
|
||||
Author: Martin Atkins <mart@degeneration.co.uk>
|
||||
|
||||
main: synchronize writes to VT100-faker on Windows
|
||||
```
|
||||
|
||||
Ответ: `Martin Atkins`
|
||||
17
src/homework/02-git/notes.md
Normal file
17
src/homework/02-git/notes.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Git
|
||||
|
||||
## Git new commands
|
||||
|
||||
В git постепенно появляются алиасы, чтобы команды становились узконаправленными. Новые полезные команды:
|
||||
1. [`git restore`](https://git-scm.com/docs/git-restore) - восстановление файлов в рабочей директории (например, откат изменений как при использовании `git checkout -- .`)
|
||||
2. [`git switch`](https://git-scm.com/docs/git-switch) - переключение веток. Более узконаправленная команда, чем `git checkout` или `git branch`.
|
||||
|
||||
## Git rebase
|
||||
|
||||
Примерный порядок действий перебазирования веток в `main`:
|
||||
1. `git switch new-branch`
|
||||
2. `git rebase main`
|
||||
3. _optional_ исправление конфликтов, выполнение команды `git rebase --continue`
|
||||
4. `git checkout main`
|
||||
5. `git merge new-branch`
|
||||
6. `git branch -D new-branch`
|
||||
Reference in New Issue
Block a user