Подробное руководство по хотя

Threats

Lucian — Extreme

Kai’Sa — Extreme

Vayne — Extreme

Yasuo — Extreme

Tristana — Extreme

Tristana is extremely snowbally and can burst you down in an early trade if she or her support manages to catch you out. After she gets a few kills, there’s almost nothing you can do besides burn your ultimate and summs every time she presses W Rocket Jump. Though Tristana does scale hard, she doesn’t have as much use later in the game due to there being more grouping, and you have more impact in team fights than she does. Tristana is shut down by CC, and usually has to separate herself from her peel in order to fight, but if she already pressed W Rocket Jump, she doesn’t care what CC you put on her; the animation can’t be canceled. Shut her down in the first two levels if possible, otherwise, be extremely careful in trading with her. In fights, you can wait out her W Rocket Jump and use your ult to prevent her burst damage and burst her down with feathers instead before she can get her jump reset.

I highly recommend taking Exhaust and Immortal Shieldbow into Tristana. When she jumps in on you Exhaust will put her in an uncomfortable situation, and will prevent her from being able to score the early kills she needs to snowball.

Jhin — Major

Draven — Major

Samira — Major

Braum — Major

Morgana — Major

Caitlyn — Even

Ezreal — Even

Jinx — Even

Aphelios — Minor

Aphelios is quite complex, so I highly encourage you to try playing him yourself or just looking up a guide to learn what he does.

There are two weapon combinations that you absolutely need to look out for, and those are his Severum, the Scythe Pistol + Crescendum, the Chakram and Infernum, the Flamethrower + Crescendum, the Chakram. These combos allow him to easily stack up chakrams and he’ll far out-damage you. Other than that, keep in mind that his Calibrum, the Sniper Rifle can give him some decent early poke potential, and his Gravitum, the Gravity Cannon is quite bad for fighting besides the chain-CC potential that it offers. Other than that, Gravitum has low damage output comparatively.

You out-damage him early and his lack of mobility makes it easy to kite around and chase him. Take advantage of this to score kills on him early. Keep in mind that he does scale a bit harder than you but it takes a while for him to get to that point. Also, always look for his weapons, as many times that will decide whether or not you win that fight.

Ashe — Minor

Due to Ashe’s passive Frost Shot, you will out-scale her in terms of damage, but she will out-scale you in terms of utility. As long as you’re on even ground, after level 3, you should be winning every 1v1 against her. Just be careful of her support, as once they get you locked down, you most likely aren’t getting out without burning any important cooldowns, but on the other hand, if your support manages to catch her out, her damage won’t be a threat and it should be an easy kill that you should be able to snowball off of. Obviously, watch out for her ultimate Enchanted Crystal Arrow at level 6 and beyond.

Kalista — Minor

Miss Fortune — Minor

Senna — Minor

Senna as an ADC doesn’t scale as hard with her passive Absolution since the chance for Mist to spawn is greatly decreased when she’s the one killing the minions. On top of this, Senna is meant to harass her enemies with her poke, which she can’t do when she has the job of farming the minions, meaning she gets even fewer stacks on her passive. She has really bad wave-clear and can’t focus on landing roots on you either. All of that being said, her roots, range, and late-game still are a threat.

You should be much more scared of Senna in the support role. She scales much harder with her passive, even if it is a bit slower, she can become more of a threat than her ADC faster than you’d expect. Beating her in lane won’t matter much to her once she’s reached 120+ stacks on her passive. In-lane, she will try to harass you with her long range. In order to prevent this, take with you a support that has high lane pressure and can catch her out when she’s trying to go for poke. Take advantage of her squishiness early, but never auto trade her, she will out damage you in short trades.

Sivir — Minor

Twitch — Minor

Kog’Maw — Minor

Varus — Minor

Synergies (Work in Progress)

Xayah is meant to snowball with her aggressive kit, and therefore, you should be looking to score early kills to scale faster. You should pair with a tanky engage support that can peel for you ideally.

Alistar — Ideal

Nautilus — Ideal

Rakan — Strong

Wave Management

Xayah’s kit gives her outstanding wave clear, just make sure that you don’t autopilot in laning phase and repeatedly push them into their tower. Try to let the wave push to you especially if you’re ahead and force fights to further stretch your lead. Your goal is to leave your opponent so far behind that they can’t come back. You basically function similarly to a lane bully in that aspect but you scale harder than one at the same time.

Shove and Deny Farm Approach

Though I recommend not to constantly push your enemy into their tower, it does apply a lot of pressure on your opponents as they have little room to move and play around your feathers. You can deny a lot of farm from your enemies this way, but you run the risk of being ganked, so if you choose this approach, keep track of where the enemy jungler is and keep vision in the river and in the tri-brush.

You shouldn’t stay pushed up against these junglers:
Hecarim
Kayn (especially when he’s going Shadow Assassin)
Nocturne
Nunu & Willump
Rammus
Shaco
Skarner
Warwick
Your vision often won’t save you against these junglers, and keeping pushed up will make you look like a snack. Against any jungler, however, always be careful, stay map-aware, keep vision in the river, and buy a Control Ward

Who to Focus in Early Fights (2v2)

In almost all fights, it’s the best idea to focus the ADC. They’ll be the ones dealing the most damage, and you don’t want them getting kills.

You should focus the support when:
• They’re low
• They’ve been caught out and you can kill them fast
• Their healing/shielding is what is winning them fights.
• Any time it’s free.

В этой статье помимо архитектуры Git будут рассмотрены принципы работы таких команд, как add, checkout, reset, commit, merge, rebase, cherry-pick, pull, push и tag.

💡 Обо всем по порядку

Вы должны практиковаться параллельно с чтением поста.

Давайте сначала создадим новый проект с именем git-101, а затем инициализируем репозиторий git с помощью команды git init:

        $ mkdir git-101
$ cd git-101
    

Git CLI предоставляет два типа команд:

  • Plumbing – состоит из низкоуровневых команд, используемых Git за кулисами, когда пользователи вводят высокоуровневые команды.
  • Porcelain – которые являются высокоуровневыми командами, обычно используемыми пользователями Git.

В этом руководстве мы увидим, как команды plumbing связаны с командами porcelain, которые мы используем изо дня в день.

Внутри проекта, содержащего репозиторий Git, ознакомимся с компонентами Git:

        $ ls -F1 .git/

HEAD
config
description
hooks/
info/
objects/
refs/
    

Мы остановимся на основных:

  • .git/objects/
  • .git/refs
  • HEAD

Разберем подробно каждый компонент.

💾 База данных объектов

Используя find, инструмент UNIX, мы можем ознакомиться со структурой папки .git/objects:

        $ find .git/objects

.git/objects
.git/objects/pack
.git/objects/info

    

В Git все хранится в структуре .git/objects, которая представляет собой Git Object Database.

Что мы можем сохранить в Git? Все.

🤔 Подождите!

Как это возможно?

С помощью хэш-функций.

🔵 Спасаемся хэшированием

Хэш-функция преобразует данные произвольного динамического размера в значения фиксированного размера. Делая это, мы можем хранить/сохранять что угодно, потому что конечное значение всегда будет иметь один и тот же размер.

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

SHA-1 – известная реализация хэш-функции, которая в целом безопасна и почти не имеет коллизий.

Возьмем, к примеру, хэширование строки my precious:

        $ echo -e "my precious" | openssl sha1
fa628c8eeaa9527cfb5ac39f43c3760fe4bf8bed

    

Примечание. Если вы работаете в Linux, вы можете использовать команду sha1sum вместо OpenSSL.

🔵 Сравнение различий в содержании

Хорошее хэширование – это безопасная практика, когда мы не можем знать необработанное значение, т. е. реверс-инжиниринг.

В случае если мы хотим знать, изменилось ли значение, мы просто помещаем значение в хэш-функцию и вуаля – мы можем сравнить разницу:

        $ echo -e "my precious" | openssl sha1
fa628c8eeaa9527cfb5ac39f43c3760fe4bf8bed

$ echo -e "no longer my precious" | openssl sha1
2e71c9ae2ef57194955feeaa99f8543ea4cd9f9f
    

Если хэши разные, то можно считать, что значение изменилось.

Можете ли вы найти здесь возможность? Как насчет использования SHA-1 для хранения данных и просто отслеживания всего путем сравнения хэшей? Это именно то, что Git делает внутри 🤯.

🔵 Git и SHA-1

Git использует SHA-1 для генерации хэширования всего и сохраняет его в .git/objectsпапке. Просто так!

hash-object, команда plumbing:

        $ echo "my precious" | git hash-object --stdin
8b73d29acc6ae79354c2b87ab791aecccf51701f
    

Сравним с OpenSSL версией:

        $ echo -e "my precious" | openssl sha1
fa628c8eeaa9527cfb5ac39f43c3760fe4bf8bed
    

Упс … это совсем другое. Это потому, что Git добавляет определенное слово, за которым следует размер содержимого и разделитель . Это слово Git называет типом объекта.

Да, у объектов Git есть типы. Первый объект, который мы рассмотрим, – это объект blob.

🔵 blob-объект

Когда мы отправляем, например, строку my precious в команду hash-object, Git добавляет паттерн {object_type} {content_size} к функции SHA-1, так что:

        blob 12myprecious

    

Затем:

        $ echo -e "blob 12my precious" | openssl sha1
8b73d29acc6ae79354c2b87ab791aecccf51701f

$ echo "my precious" | git hash-object --stdin
8b73d29acc6ae79354c2b87ab791aecccf51701f
    

Ура! 🎉

🔵 Хранение blob в базе данных

Но сама команда hash-object не сохраняется в папке .git/objects. Мы должны добавить -w и объект будет сохранен:

        $ echo "my precious" | git hash-object --stdin -w
8b73d29acc6ae79354c2b87ab791aecccf51701f

$ find .git/objects
...
.git/objects/8b
.git/objects/8b/73d29acc6ae79354c2b87ab791aecccf51701f

### Or, simply
$ find .git/objects -type f
.git/objects/8b/73d29acc6ae79354c2b87ab791aecccf51701f
    

📁⚙️ Полное руководство по основам Git

Данное изображение и все последующие взяты отсюда.

🔵 Чтение необработанного содержимого блоба

Мы уже знаем, что по криптографическим соображениям невозможно прочитать необработанное содержимое из его хэшированной версии.

🤔 Хорошо, но подождите.

Как Git узнает исходное значение?

Он использует хэш в качестве ключа, указывающего на значение, которое является оригинальным содержимым, используя алгоритм сжатия под названием Zlib, который сжимает содержимое и сохраняет его в базе данных объектов, тем самым экономя место для хранения.

cat-file, команда plumbing, при наличии ключа распаковывает сжатые данные, таким образом, получая исходное содержимое:

        $ git cat-file -p 8b73d29acc6ae79354c2b87ab791aecccf51701f
my precious
    

Таким образом, Git – это база данных с ключом и значением!

📁⚙️ Полное руководство по основам Git

🔵 Как поделиться blob

Используя Git, мы хотим работать над содержимым и делиться им с другими людьми

Как правило, после работы над различными файлами/блобами мы готовы поделиться ими и подписать свои имена.

Другими словами, нам нужно сгруппировать, продвигать и добавлять метаданные в наши блобы. Этот процесс работает следующим образом:

  1. Добавьте большой двоичный объект в промежуточную область
  2. Сгруппируйте все blob-объекты в рабочей области в древовидную структуру
  3. Добавьте метаданные в древовидную структуру (имя автора, дата, смысловое сообщение)

Давайте рассмотрим описанные выше шаги подробнее.

🔵 Stage area и index

update-index, команда plumbing, позволяет добавить blob в stage area и дать ему имя:

        $ git update-index 
    --add 
    --cacheinfo 100644 
    8b73d29acc6ae79354c2b87ab791aecccf51701f 
    index.txt
    
  • --add: добавляет blob в stage, также называемый индексом.
  • --cacheinfo: используется для регистрации файла, которого еще нет в рабочем каталоге
  • хэш blob
  • index.txt: имя большого двоичного объекта в индексе.

📁⚙️ Полное руководство по основам Git

Где Git хранит индекс?

        $ cat .git/index

DIRCsҚjT¸zQp    index.txtÆ
                          7CJVVÙ
    

Недоступен для чтения человеком и сжат с использованием Zlib.

Мы можем добавить в индекс столько больших двоичных объектов, сколько захотим, например:

        $ git update-index {sha-1} f1.txt
$ git update-index {sha-1} f2.txt

    

После добавления blob-объектов в индекс мы можем сгруппировать их в древовидную структуру, чтобы мы могли поделиться ими.

🔵 Объект дерева

Команда write-tree (plumbing) позволяет Git группировать все blob, которые были добавлены в индекс, и создает в папке еще один объект: .git/objects

        $ git write-tree
3725c9e313e5ae764b2451a8f3b1415bf67cf471
    

Проверяя папку .git/objects, обратите внимание, что был создан новый объект:

        $ find .git/objects

### The new object
.git/objects/37
.git/objects/37/25c9e313e5ae764b2451a8f3b1415bf67cf471

### The blob previously created
.git/objects/8b
.git/objects/8b/73d29acc6ae79354c2b87ab791aecccf51701f
    

Давайте извлечем исходное значение с помощью cat-file для лучшего понимания:

        ### Using the option -t, we get the object type
$ git cat-file -t 3725c9e313e5ae764b2451a8f3b1415bf67cf471
tree

$ git cat-file -p 3725c9e313e5ae764b2451a8f3b1415bf67cf471
100644 blob 8b73d29acc6ae79354c2b87ab791aecccf51701f index.txt
    

Это интересный вывод, он сильно отличается от BLOB-объекта, который вернул исходное содержимое.

В дереве объектов Git возвращает все объекты, которые были добавлены в индекс.

        100644 blob 8b73d29acc6ae79354c2b87ab791aecccf51701f index.txt

    
  • 100644: кэш-информация
  • blob: тип объекта
  • хэш blob
  • имя blob

📁⚙️ Полное руководство по основам Git

После завершения работы добавим некоторые метаданные в дерево, чтобы мы могли присвоить имя автора, дату и так далее.

🔵 Объект коммита

commit-tree, команда plumbing, получает дерево, сообщение коммита и создает еще один объект в папке .git/objects:

        $ git commit-tree 3725c -m 'my precious commit'
505555f4f07d90ae14a0f2e67cba7f7b9af539ee
    

Что это за объект?

        $ find .git/objects
...
.git/objects/50
.git/objects/50/5555f4f07d90ae14a0f2e67cba7f7b9af539ee

### cat-file
$ git cat-file -t 505555f4f07d90ae14a0f2e67cba7f7b9af539ee
commit
    

А как насчет его стоимости?

        $ git cat-file -p 505555f4f07d90ae14a0f2e67cba7f7b9af539ee

tree 3725c9e313e5ae764b2451a8f3b1415bf67cf471
author leandronsp <leandronsp@example.com> 1678768514 -0300
committer leandronsp <leandronsp@example.com> 1678768514 -0300

my precious commit

    
  • tree 3725c: объект дерева ссылок
  • автор/коммиттер
  • сообщение коммита my precious commit

📁⚙️ Полное руководство по основам Git

🤯 ОМГ! Я вижу здесь закономерность?

Кроме того, коммиты могут ссылаться на другие коммиты:

        $ git commit-tree 3725c -p 50555 -m 'second commit'
5ea578a41333bae71527db537072534a199a0b67
    

-p позволяет ссылаться на родительский коммит:

        $ git cat-file -p 5ea578a41333bae71527db537072534a199a0b67

tree 3725c9e313e5ae764b2451a8f3b1415bf67cf471
parent 505555f4f07d90ae14a0f2e67cba7f7b9af539ee
author leandronsp <leandronsp@gmail.com> 1678768968 -0300
committer leandronsp <leandronsp@gmail.com> 1678768968 -0300

second commit
    

Мы видим, что, благодаря коммиту с родителем, мы можем рекурсивно пройти все коммиты по всем их деревьям, пока не доберемся до финальных blob-объектов .

Возможное решение:

        $ git cat-file -p <first-commit-sha1>
$ git cat-file -p <first-commit-tree-sha1>
$ git cat-file -p <first-commit-parent-sha1>
$ git cat-file -p <parent-commit-sha1>
...
    

И так далее. Ну вы попали в точку.

🔵 Логирование для восстановления

git log, команда porcelain, решает эту проблему, просматривая все коммиты, их родителей и деревья, давая нам представление о временной хронологии нашей работы.

        $ git log 5ea57

commit 5ea578a41333bae71527db537072534a199a0b67
Author: leandronsp <leandronsp@gmail.com>
Date:   Mon Mar 13 22:42:48 2023 -0300

    second commit

commit 505555f4f07d90ae14a0f2e67cba7f7b9af539ee
Author: leandronsp <leandronsp@gmail.com>
Date:   Mon Mar 13 22:35:14 2023 -0300

    my precious commit
    

🤯 ОМГ!

Git – это гигантская, но легкая база данных графа ключ-значение!

🔵 Граф Git

В Git мы можем манипулировать указателями на граф.

📁⚙️ Полное руководство по основам Git

  • Blob – это моментальные снимки данных/файлов.
  • Деревья представляют собой набор блобов или другое дерево.
  • Коммиты ссылаются на деревья и/или другие коммиты, добавляя метаданные

Это очень мило и все такое, но использование sha1 в команде git log может быть громоздким.

Как насчет присвоения имен хэшам? Используйте ссылки.

Ссылки на Git

Ссылки находятся в папке .git/refs:

        $ find .git/refs

.git/refs/
.git/refs/heads
.git/refs/tags
    

🔵 Дадим имена коммитам

Мы можем связать любой хэш коммита с произвольным именем, расположенным в .git/refs/heads, например:

        echo 5ea578a41333bae71527db537072534a199a0b67 > .git/refs/heads/test

    

Теперь давайте выполним git log, используя новую ссылку:

        $ git log test

commit 5ea578a41333bae71527db537072534a199a0b67
Author: leandronsp <leandronsp@gmail.com>
Date:   Mon Mar 13 22:42:48 2023 -0300

    second commit

commit 505555f4f07d90ae14a0f2e67cba7f7b9af539ee
Author: leandronsp <leandronsp@gmail.com>
Date:   Mon Mar 13 22:35:14 2023 -0300

    my precious commit
    

Что еще лучше, Git предоставляет update-ref, команду plumbing, и мы можем использовать ее для обновления связи коммита со ссылкой:

        $ git update-ref refs/heads/test 5ea578a41333bae71527db537072534a199a0b67

    

Звучит знакомо, да? Да, речь идет о ветках.

🔵 Ветки

Ветки – это ссылки, указывающие на конкретный коммит.

Поскольку ветки представляют команду update-ref, хэш коммита может измениться в любое время, то есть ссылка на ветку является изменяемой.

📁⚙️ Полное руководство по основам Git

На мгновение давайте подумаем о том, как git log работает без аргументов:

        $ git log

fatal: your current branch 'main' does not have any commits yet
    

🤔 Хм…

Как Git узнает, что моя текущая ветка является «основной»?

🔵 HEAD

Ссылка на HEAD находится в .git/HEAD. Это один файл, который указывает на главную ссылку (ветвь):

        $ cat .git/HEAD

ref: refs/heads/main
    

Точно так же, используя команду porcelain:

        $ git branch
* main
    

Используя symbolic-ref, команду plumbing, мы можем управлять тем, на какую ветку указывает HEAD:

        $ git symbolic-ref HEAD refs/heads/test

### Check the current branch
$ git branch
* test
    

Как и update-ref в ветках, мы можем обновить HEAD, используя symbolic-ref в любое время.

📁⚙️ Полное руководство по основам Git

На картинке ниже мы изменим HEAD с ветки main на ветку fix:

📁⚙️ Полное руководство по основам Git

Без аргументов команда git log обходит корневой коммит, на который ссылается текущая ветвь (HEAD):

        $ git log

commit 5ea578a41333bae71527db537072534a199a0b67 (HEAD -> test)
Author: leandronsp <leandronsp@gmail.com>
Date:   Tue Mar 14 01:42:48 2023 -0300

    second commit

commit 505555f4f07d90ae14a0f2e67cba7f7b9af539ee
Author: leandronsp <leandronsp@gmail.com>
Date:   Tue Mar 14 01:35:14 2023 -0300

    my precious commit
    

До сих пор мы изучали архитектуру и основные компоненты в Git, а также вспомогательные команды, которые являются более низкоуровневыми командами.

Пришло время связать все эти знания с porcelain командами, которые мы используем ежедневно.

🍽️ Porcelain команды

Git предоставляет большое количество команд высокого уровня, которые мы можем использовать без необходимости напрямую манипулировать объектами и ссылками.

Эти команды называются porcelain командами.

🔵 git add

Команда git add принимает файлы в рабочем каталоге в качестве аргументов, сохраняет их как blob-объекты в базе данных и добавляет их в индекс.

📁⚙️ Полное руководство по основам Git

Короче говоря, git add:

  1. запускает hash-object для каждого аргумента файла
  2. запускает update-index для каждого аргумента файла

🔵 git commit

git commit принимает в качестве аргумента сообщение, группирует все ранее добавленные в индекс файлы и создает объект коммита.

Сначала выполняется write-tree:

📁⚙️ Полное руководство по основам Git

Затем выполняется commit-tree:

📁⚙️ Полное руководство по основам Git

        $ git commit -m 'another commit'

[test b77b454] another commit
 1 file changed, 1 deletion(-)
 delete mode 100644 index.txt

    

🕸️ Управление указателями в Git

Широко используются следующие команды porcelain, которые манипулируют ссылками Git под капотом.

Предполагая, что мы только что клонировали проект, в котором HEAD указывает на main ветку, которая указывает на коммит C1:

📁⚙️ Полное руководство по основам Git

Как мы можем создать еще одну новую ветку из текущей HEAD и переместить HEAD в эту новую ветку?

🔵 git checkout

Используя git checkout с параметром -b, Git создаст новую ветку из текущей (HEAD) и переместит HEAD в эту новую ветку.

        ### HEAD
$ git branch
* main

### Creates a new branch "fix" using the same reference SHA-1
#### of the current HEAD
$ git checkout -b fix
Switched to a new branch 'fix'

### HEAD
$ git branch
* fix
main
    

Какая plumbing-команда отвечает за перемещение HEAD? Точно, symbolic-ref.

📁⚙️ Полное руководство по основам Git

После этого мы делаем новую работу в ветке fix, а затем выполняем git commit, который добавит новый коммит под названием C3:

📁⚙️ Полное руководство по основам Git

Запустив git checkout, мы можем продолжать переключать HEAD между разными ветвями:

📁⚙️ Полное руководство по основам Git

Иногда нам может понадобиться переместить коммит, на который указывает ветка.

Мы уже знаем, что это делает команда plumbing update-ref:

        $ git update-ref refs/heads/fix 356c2

    

🔵 git reset

Команда git reset (porcelain) запускает update-ref внутри, поэтому нам просто нужно выполнить:

        $ git reset 356c2

    

Но как Git узнает, какую ветку нужно переместить? Что ж, git reset перемещает ветку, на которую указывает HEAD.

📁⚙️ Полное руководство по основам Git

Что делать, если есть различия между ревизиями? Используя reset, Git перемещает указатель, но оставляет все различия в рабочей области (индексе).

        $ git reset b77b

    

Проверка с помощью git status:

        $ git status

On branch fix
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        another.html
        bye.html
        hello.html

nothing added to commit but untracked files present (use "git add" to track)
    

Коммит ревизии был изменен в ветке fix и все отличия перенесены в index .

Тем не менее, что нам делать, если мы хотим сбросить и отбросить все различия? Просто использовать параметр --hard:

📁⚙️ Полное руководство по основам Git

При использовании git reset --hard любые различия между ревизиями будут отброшены, и они не будут отображаться в индексе .

💡 Золотой совет о перемещении ветки

Если мы хотим выполнить подключение update-ref к другой ветке, нет необходимости проверять ветку, как это необходимо в git reset.

Вместо этого мы можем выполнить porcelain-команду git branch -f source target:

        $ git branch -f main b77b

    

Под капотом он выполняет git reset --hard в исходной ветке. Давайте проверим, на какой коммит указывает основная ветка:

        $ git log main --pretty=oneline -n1
b77b454a9a507f839880879a895ac4f241177a28 (main) another commit
    

Также мы подтверждаем, что ветка fix по-прежнему указывает на коммит 369cd:

        $ git log fix --pretty=oneline -n1
369cd96b1f1ef6fa7de1ff2ed12e15be979dcffa (HEAD -> fix, test) add files

    

Мы сделали git reset без перемещения HEAD!

📁⚙️ Полное руководство по основам Git

Нередко вместо перемещения указателя ветки мы хотим применить конкретный коммит к текущей ветке.

🔵 git cherry-pick

С помощью porcelain-команды git cherry-pick мы можем применить произвольную фиксацию к текущей ветке.

Возьмем следующий сценарий:

📁⚙️ Полное руководство по основам Git

  • main-пункты к C3 – C2 – C1
  • fix для точек на C5 – C4 – C2 – C1
  • HEAD указывает на fix

В ветке исправления отсутствует фиксация C3, на которую ссылается основная ветка.

Для этого запустим git cherry-pick C3:

📁⚙️ Полное руководство по основам Git

Обратите внимание, что:

  • коммит C3 будет клонирован в новый коммит с именем C3
  • этот новый коммит будет ссылаться на коммит C5
  • fix переместит указатель на C3′
  • HEAD продолжает указывать на исправление

После применения изменений график будет представлен следующим образом:

📁⚙️ Полное руководство по основам Git

Однако есть еще один способ переместить указатель ветки. Он заключается в использовании произвольного коммита другой ветки, и при необходимости выполняется слияние различий.

Вы не ошиблись, здесь мы говорим о git merge.

🔵 git merge

Опишем следующий сценарий:

📁⚙️ Полное руководство по основам Git

  • Main-пункты к C3 – C2 – C1
  • Fix точек на C4 – C3 – C2 – C1
  • HEAD указывает на main

Мы хотим применить исправленную ветку к текущей (основной) ветке, т. е. выполнить git merge fix.

Обратите внимание, что ветка fix содержит все коммиты, принадлежащие основной ветке (C3 – C2 – C1), имея только один коммит перед основным (C4).

В этом случае основная ветвь будет «переадресована», указывая на тот же коммит, что и ветка исправления.

Такое слияние называется fast-forward, как показано на изображении ниже:

📁⚙️ Полное руководство по основам Git

Когда fast-forward невозможен

Иногда текущее состояние нашей древовидной структуры не позволяет выполнять ускоренную перемотку вперед. Рассмотрим сценарий ниже:

📁⚙️ Полное руководство по основам Git

Когда в ветке слияния – ветке исправления в приведенном выше примере – отсутствует одна или несколько коммитов из текущей ветки (основной): коммит C3.

Таким образом, fast-forward невозможен.

Однако, чтобы слияние прошло успешно, Git выполняет технику, называемую Snapshotting, состоящую из следующих шагов.

Во-первых, Git ищет следующего общего родителя двух ветвей, в этом примере коммит C2.

📁⚙️ Полное руководство по основам Git

Во-вторых, Git делает снимок целевой ветки фиксации C3:

📁⚙️ Полное руководство по основам Git

В-третьих, Git делает снимок исходной ветки фиксации C5:

📁⚙️ Полное руководство по основам Git

Наконец, Git автоматически создает слияние фиксации (C6) и указывает на двух родителей соответственно: C3 (цель) и C5 (источник):

📁⚙️ Полное руководство по основам Git

Вы когда-нибудь задумывались, почему в дереве Git отображаются некоторые коммиты, созданные автоматически?

Не заблуждайтесь, этот процесс слияния называется трехсторонним слиянием!

📁⚙️ Полное руководство по основам Git

Далее давайте изучим другой метод слияния, при котором fast-forward невозможен, но вместо моментального снимка и автоматического слияния коммита Git применяет различия поверх исходной ветки.

Да, это git rebase.

🔵 git rebase

Рассмотрим следующее изображение:

📁⚙️ Полное руководство по основам Git

  • Main-пункты к C3 – C2 – C1
  • fix точек на C5 – C4 – C2 – C1
  • HEAD указывает на fix

Мы хотим перебазировать основную ветку в ветку исправления, посредством git rebase main. Но как работает git rebase?

👉git reset

Сначала Git выполняет git reset main, при этом ветка fix будет указывать на тот же указатель основной ветки: C3 – C2 – C1.

📁⚙️ Полное руководство по основам Git

На данный момент у коммитов C5-C4 нет ссылок.

👉git cherry-pick

Во-вторых, Git выполняет git cherry-pick C5 в текущую ветку:

📁⚙️ Полное руководство по основам Git

Обратите внимание, что выбранные коммиты клонируются, поэтому окончательный хэш изменится: C5 – C4 станет C5′ – C4′.

После у нас может быть следующий сценарий:

📁⚙️ Полное руководство по основам Git

👉git reset еще раз

Наконец, Git выполнит git reset C5', поэтому указатель ветки fix переместится с C3 на C5'.

Процесс rebase завершен.

📁⚙️ Полное руководство по основам Git

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

🌐 Удаленные ветки

Чтобы работать с удаленными ветками, нам нужно добавить удаленную ветку в наш локальный репозиторий с помощью команды porcelain – git remote.

        $ git remote add origin git@github.com/myaccount/myrepo.git

    

Удаленные репозитории находятся в папке .git/refs/remotes:

        $ find .git/refs
...
.git/refs/remotes/origin
.git/refs/remotes/origin/main
    

🔵 Скачать с удаленного репозитория

Как нам синхронизировать удаленную ветку с нашей локальной веткой?

Git предлагает два шага:

👉git fetch

С помощью git fetch origin main Git загрузит удаленную ветку и синхронизирует ее с новой локальной веткой с именем origin/main, также известной как upstream branch (восходящая ветка).

📁⚙️ Полное руководство по основам Git

👉git merge

После извлечения и синхронизации вышестоящей ветки мы можем выполнить git merge origin/main и, поскольку восходящая ветка опережает нашу локальную ветку, Git безопасно применит ускоренное слияние.

📁⚙️ Полное руководство по основам Git

Однако комбинация fetch + merge может повториться, так как мы будем синхронизировать локальные/удаленные ветки несколько раз в день.

Но сегодня наш счастливый день, и Git предоставляет команду git pullchina, которая выполняет fetch + merge от нашего имени.

👉git pull

git pull выполнит выборку (синхронизирует удаленную ветвь с вышестоящей ветвью), а затем объединит восходящую ветвь с локальной ветвью.

📁⚙️ Полное руководство по основам Git

Итак, мы увидели, как получать/загружать изменения с репозитория. С другой стороны, как насчет отправки локальных изменений на удаленные?

🔵 Загрузить на удаленный репозиторий

Git предоставляет porcelain команду под названием git push:

👉git push

Выполнение git push origin main приведет к загрузке изменения на удаленный репозиторий:

📁⚙️ Полное руководство по основам Git

Затем Git объединит восходящую ветвь origin/main с локальной main-веткой:

📁⚙️ Полное руководство по основам Git

В конце мы получим следующее изображение:

📁⚙️ Полное руководство по основам Git

Где:

  • Удаленный репозиторий обновлен (локальные изменения отправлены)
  • main к C4
  • origin/main к C4
  • HEAD указывает на main

🔵 Предоставление неизменяемых имен коммитам

Мы знаем, что ветки – это просто изменяемые ссылки на коммиты, поэтому мы можем переместить указатель ветки.

Однако Git также предлагает способ предоставления неизменяемых ссылок, указатели которых не могут быть изменены (если только вы не удалите их и не создадите снова).

Неизменяемые ссылки полезны, например, когда мы хотим пометить/отметить коммиты, которые готовы для какого-то производственного выпуска.

Да, мы говорим о тегах.

👉git tag

Используя команду (porcelain) git tag, мы можем давать имена коммитам, но мы не можем выполнить сброс или любую другую команду, которая изменила бы указатель.

📁⚙️ Полное руководство по основам Git

Это очень полезно для управления версиями. Теги находятся в папке .git/refs/tags:

        $ find .git/refs

...
.git/refs/tags
.git/refs/tags/v1.0
    

Если мы хотим изменить указатель тега, мы должны удалить его и создать еще один с тем же именем.

💡 Git reflog

И последнее, но не менее важное – вызываемая команда git reflog, которая сохраняет все изменения, которые мы сделали, в нашем локальном репозитории.

        $ git reflog

369cd96 (HEAD -> fix, test) HEAD@{0}: reset: moving to main
b77b454 (main) HEAD@{1}: reset: moving to b77b
369cd96 (HEAD -> fix, test) HEAD@{2}: checkout: moving from main to fix
369cd96 (HEAD -> fix, test) HEAD@{3}: checkout: moving from fix to main
369cd96 (HEAD -> fix, test) HEAD@{4}: checkout: moving from main to fix
369cd96 (HEAD -> fix, test) HEAD@{5}: checkout: moving from fix to main
369cd96 (HEAD -> fix, test) HEAD@{6}: checkout: moving from main to fix
369cd96 (HEAD -> fix, test) HEAD@{7}: checkout: moving from test to main
369cd96 (HEAD -> fix, test) HEAD@{8}: checkout: moving from main to test
369cd96 (HEAD -> fix, test) HEAD@{9}: checkout: moving from test to main
369cd96 (HEAD -> fix, test) HEAD@{10}: commit: add files
b77b454 (main) HEAD@{11}: commit: another commit
5ea578a HEAD@{12}:
    

Это очень полезно, если мы хотим перемещаться вперед и назад по временной шкале Git. Наряду с reset, cherry-pick и подобными, это мощный инструмент, если мы хотим освоить Git.

Подведение итогов

Какое долгое путешествие!

Эта статья была слишком длинной, но я смог изложить основные темы, которые, по моему мнению, важны для понимания Git.

Я надеюсь, что после прочтения этой статьи вы будете более уверенно использовать Git, разрешая ежедневные конфликты и сложные случаи во время процесса слияния/перебазирования.

***

Материалы по теме

  • Git за полчаса: руководство для начинающих
  • 📁 Настраиваем Git для правильной работы с опенсорс-проектами
  • Основы Git: контроль версий для самых маленьких
  • 💽 Git для Data Science: контроль версий моделей и датасетов с помощью DVC
  • 👍 Как правильно писать сообщения коммитов в GIT, чтобы всем было хорошо

Руководства

  • Рекомендации
  • Популярное
  • Новинки

Снайпинг скачать

Снайпинг

Первое наиболее полное руководство по снайперскому делу и основам сверхдальней стрельбы. Книга предназначена для силовых структур и для развития спортивных разновидностей…

рейтинг книги

Карта любви скачать

Карта любвиГоттман Джон

Проблемы бывают в любой семье. И, как правило, по одним и тем же поводам. Но кто-то продолжает жить долго и счастливо, а у кого-то отношения стремительно разрушаются….

рейтинг книги

SAS. Руководство по выживанию скачать

SAS. Руководство по выживаниюУайзмэн Джон

Джон «Лофти» Уайзман 26 лет прослужил в Специальной авиадесантной службе (SAS) Великобритании, и его книга основана на технике подготовки этого всемирно известного…

рейтинг книги

Одиночная подготовка разведчика скачать

Одиночная подготовка разведчикаПоповских Павел Яковлевич, Кукушкин А. В.

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

рейтинг книги

Полное руководство по выживанию в экстремальных ситуациях в дикой природе, на суше и на море скачать

Сексуальные позиции. Практическое руководство скачать

Сексуальные позиции. Практическое руководствоДмитрий Дмитриевич Исаев, Самухина Неонилла Анатольевна

Настоящее издание, подготовленное соитологом Неониллой Самухиной и сексологом Дмитрием Исаевым, содержит не только иллюстрированное описание сексуальных позиций, но и…

рейтинг книги

Гитара для чайников скачать

Гитара для «чайников»Чаппел Джон, Филипс Марк

Данная книга представляет собой вводный курс по самостоятельному изучению приёмов игры на гитаре. В ней приведены базовые сведения, необходимые для исполнения…

рейтинг книги

Язык программирования С++ скачать

Язык программирования С++Страуструп Бьерн

Книга написана Бьерном Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания…

рейтинг книги

Основы тактической подготовки современного солдата скачать

Рукопашный бой по системе спецназа скачать

Рукопашный бой по системе спецназаДогерти Мартин Дж.

Убойные приемы рукопашного боя от признанного эксперта самообороны, обладателя черного пояса по джиу-джитсу Мартина Дж.Догерти! То, чему обучают только в элитных войсках,…

рейтинг книги

Изготовление ножей. Практическое руководство скачать

25 уроков фотографии скачать

25 уроков фотографииМикулин В. П.

Любители фотографии не минуют начальных ступеней овладения ее техникой. Посильно помочь им, и не только на первых порах, — задача настоящей книги. «25 уроков…

рейтинг книги

Руководство по подготовке к рукопашному бою Красной Армии скачать

Парикмахерское дело скачать

Парикмахерское дело Константинов Анатолий

Приводятся сведенья по материаловеденью, санитарии и гигиене. Описываются оборудование парикмахеоских, аппаратура и инструменты. Рассматриваются основные операции:…

рейтинг книги

Все о клавишах : Подробный самоучитель игры на фортепиано и синтезаторе. скачать

Рукопашный бой: Самоучитель скачать

Рукопашный бой: СамоучительАлександр Карасёв, Захаров Евгений Валерьевич, Ferrante Caracciolo

Самоучитель предназначен в помощь самостоятельно изучающим основы рукопашного боя, занимающимся в различных секциях и инструкторам. Подготовительные упражнения и…

рейтинг книги

Самооборона в городе. Техника спецназа скачать

Самооборона в городе. Техника спецназаУайзмэн Джон

Как свести до минимума риск подвергнуться нападению на улице? А если оно произошло, то как эффективно отразить его? Ответы на эти актуальные для каждого человека…

рейтинг книги

222 проблемы с компьютером и их решение: Настольная книга начинающего пользователя скачать

Сам себе электрик скачать

Сам себе электрикБедин Виктор Саввович

Квалифицированные практические советы из этой книги помогут вам без проблем починить розетку, выключатель, светильник, электрощит, устранить неисправности в…

рейтинг книги

Военно-полевая хирургия скачать

Военно-полевая хирургияГуманенко Е. К.

Учебник ‘Военно-полевая хирургия’ предназначен для студентов медицинских вузов, составлен в соответствии с программой изучения этой дисциплины и имеет ряд…

рейтинг книги

Десантная и походная подготовка разведчика скачать

Десантная и походная подготовка разведчикаТарас Анатолий Ефимович

В эту хрестоматию входят учебно-методические и справочные материалы, представляющие интерес для бойцов армейских подразделений специального назначения, действующих в…

рейтинг книги

Тактическая стрельба скачать

Тактическая стрельбаПотапов Алексей Андреевич

Практическое пособие по обучению тактической стрельбе из автомата и короткоствольного оружия составлено на основе советских и немецких боевых инструкций времен Второй…

рейтинг книги

Солдату о подрывном деле скачать

Солдату о подрывном делеВаренышев Борис Васильевич

Брошюра предназначается для солдат, сержантов и курсантов училищ всех родов войск Советской Армии, студентов гражданских вузов, а также членов ДОСААФ в качестве…

рейтинг книги

Школа альпинизма. Начальная подготовка скачать

Школа альпинизма. Начальная подготовкаСтепенко Татьяна Владимировна, Захаров Павел Павлович

Учебное пособие, написанное опытными советскими горовосходителями для начального этапа обучения альпинистов в условиях работы альпинистских секций, альплагерей и…

рейтинг книги

Руководство для начинающих по плетению шнуров. Искусство кумихимо скачать

Безопасность в городе, или Самооборона для умных скачать

Безопасность в городе, или Самооборона для умныхАбросимов Дмитрий Евгеньевич

Вы не готовы бить первым, бить жестоко, до крови. Вы не готовы терпеть боль, терпеть, когда бьют вас. И это правильно! Зачем вам это? Вы ведь совсем не безоружны. У вас…

рейтинг книги

Война за креатив. Как преодолеть внутренние барьеры и начать творить скачать

Ударные инструменты для чайников скачать

Ударные инструменты для чайниковСтронг Джефф

Автор книги в простой и увлекательной форме рассказывает об искусстве игры на ударных инструментах. Вы узнаете, что такое ударная установка и как ее собрать, освоите…

рейтинг книги

Да-цзе-шу - искусство пресечения боя скачать

Да-цзе-шу — искусство пресечения бояСенчуков Юрий Юрьевич

Любой, кто хотя бы слышал о боевых искусствах, непременно слышал и о том, что они полны секретов. Сейчас, когда спорт окончательно оторвал от традиционных корней так…

рейтинг книги

Рукоделие. Энциклопедия скачать

Рукоделие. ЭнциклопедияНестерова Дарья Владимировна

Настоящее издание содержит подробные руководства по различным видам рукоделия, как достаточно распространенным, так и редким. Освоив филейное вязание, стежку, макраме,…

рейтинг книги

Цветоводство скачать

ЦветоводствоКиселев Геннадий Евгеньевич

В книге описаны основные виды и сорта декоративных растений, способы их размножения и выращивания на приусадебных участках и в комнатных условиях, приемы планировки…

рейтинг книги

Ракетные печи. Сверхэффективные печи своими руками скачать

Телескоп астронома-любителя скачать

Телескоп астронома-любителяНавашин Михаил Сергеевич

В книге рассказывается об устройстве телескопов и о различных этапах самостоятельного изготовления любителем телескопов-рефлекторов средних размеров. Пользуясь книгой,…

рейтинг книги

Альбом образцов рисунков деформирующего окрашивания вооружения и военной техники. Часть 4 скачать

Универсальный фундамент. Технология ТИСЭ скачать

Универсальный фундамент. Технология ТИСЭЯковлев Рашид

В предлагаемой вашему вниманию книге подробно рассматриваются следующие вопросы:

— общие сведения о грунтах;

— нагрузки, испытываемые фундаментами, расчет их несущей…

рейтинг книги

Занимательная пиротехника. Часть 1 скачать

Занимательная пиротехника. Часть 1Чувурин Александр Викторович

Книга рассчитана на широкий круг читателей, неравнодушных к спичкам, кострам. ракетам и фейерверкам.

В первой части книги подробно описано более 1400 составов и…

рейтинг книги

Занимательная пиротехника. Часть 2 скачать

Занимательная пиротехника. Часть 2Чувурин Александр Викторович

Вторая часть книги представляет собой подробное практическое руководство по изготовлению фейерверков в кустарных условиях. В том числе низовых, верховых, водных,…

рейтинг книги

5S для офиса: как организовать эффективное рабочее место скачать

Как снимать фотографии, которые вызывают восторг у людей скачать

Рисуем животных 2 скачать

Рисуем животных 2Марковская Алла Анатольевна

Это прекрасное практическое пособие научит вас изображать животных в разных графических техниках. В руководстве пошагово проиллюстрирован процесс рисования: от первых…

рейтинг книги

Содержание

  • 1 Что такое командная строка
  • 2 В каких ситуациях командная строка может оказаться полезной
  • 3 Как пользоваться командной строкой
    • 3.1 Как вызвать командную строку
  • 4 Работа в командной строке
  • 5 Видео по теме

До того момента, когда операционные системы научились «общаться» с пользователями при помощи привычных для нас графических изображений, ввод и вывод информации в компьютер осуществлялся исключительно при помощи текста.

Эта статья содержит общую ознакомительную информацию для разных версий Windows. После прочтения вы можете пополнить свои знания по конкретной разновидности ОС: 7-ка, 8 версия или узнать о множестве улучшений программы в 10 версии Windows.

Конечно, до сих пор существуют такие ОС, которые используют для общения с пользователями, так называемый, интерфейс командной строки. Но ими обычно пользуются профессиональные программисты, системные администраторы и прочие работники IT-индустрии. Для обычных пользователей производители операционных систем создали удобный графический интерфейс, который позволяет «общаться» с компьютером или, допустим, смартфоном при помощи мышки или нажатий по кнопкам на экране.

Несмотря на это, каждая операционная система (включая Windows XP, 7, 8 и так далее) всё же, как и раньше, поддерживает ввод и вывод информации посредством текстовых команд. Командная строка Windows — явный тому пример. Разберёмся, что это такое.

Что такое командная строка

В первую очередь — это программа cmd.exe, находящаяся в директории system32 папки операционной системы. Вариант ее месторасположения: C:Windowssystem32cmd.exe. Путь может и отличаться, в зависимости от версии Windows и места ее установки.

В общих чертах, командная строка — это инструмент операционной системы, состоящий, как правило, из оболочки ОС и текстового интерфейса. Оболочка обеспечивает пользователя инструментарием для «общения» с операционной системой, которыми, в данном случае, выступают текстовые команды.

Окно командной строки

Командная строка операционных систем Windows, начиная с XP, призвана обеспечить пользователей возможностью применения MS-DOS и множества других компьютерных команд. Важная её особенность заключается в том, что она способна выполнять пользовательские команды без помощи графического интерфейса. Необходимость в понимании и знании всех этих команд делает затруднительным использование командной строки для управления операционной системой рядовыми пользователями. Однако, это не так уж и сложно, как кажется на первый взгляд.

Понимая основные принципы работы командной строки, любой пользователей, более-менее знакомый с компьютером, сможет управляться с командной строкой без особого труда.

В каких ситуациях командная строка может оказаться полезной

Существует ряд причин использования командной строки. Бывают и такие ситуации, в которых без её использования просто невозможно обойтись. А в некоторых случаях выполнение определённых функций Windows, а также настройка операционной системы через командную строку происходит удобней и быстрей.

Возьмём ситуацию с вирусами. Существуют такие вирусные программы, которые полностью блокируют графический интерфейс пользователя (так называемые, смс-баннеры). Как правило, эти вирусы выводят на экран компьютера окно, в котором написано сообщение, типа «Ваш компьютер блокирован управлением МВД» или «Ваши данные под угрозой» и так далее. Такие смс-баннеры невозможно закрыть никакими обычными способами — ни при помощи мышки, ни при помощи горячих клавиш на клавиатуре.

В таких ситуациях на помощь как раз и приходит командная строка. Конечно, чтобы её вызвать, необходимо проделать определённые действия с компьютером, но сейчас не об этом.

Ещё одна ситуация. Допустим, Windows XP (или любая другая версия) просто перестала работать, а на жёстком диске остались важные данные, которые срочно необходимо скопировать на флешку. Если под рукой имеется хотя бы установочный диск с Windows, то на определённом моменте установки операционной системы (без ожидания окончания установки) можно вызвать командную строку и скопировать эти данные. Эта возможность часто приходится весьма кстати в случае с повреждённым диском, когда к примеру, установка Windows прекращается во время копирования установочных файлов на жёсткий диск.

Командная строка также способна быстро вызывать различные стандартные мастера-настройщики операционной системы (например, мастер настройки сети) или такие системные инструменты, как редактор реестра, службы компонентов и остальные. С её помощью также можно производить непосредственные настройки различных параметров Windows, осуществлять управление файлами, запускать программы и выполнять многие другие действия.

Как пользоваться командной строкой

На различных компьютерных форумах и сайтах можно найти сотни руководств по использованию тех или программ, выполнению каких-то системных настроек и массу других статей, в которых авторы призывают к использованию командной строки. Многие неопытные пользователи сразу теряются, видя фразу «Запустите командную строку…». Если вы также входите в их число, вам будет очень полезно ознакомиться с работой этого полезного инструмента. Начнём с того, как её вызвать.

Как вызвать командную строку

Начиная с Windows XP и до последней версии этого семейства операционных систем, командная строка вызывается посредством диалога «Выполнить» («Run»), в который необходимо ввести команду — «cmd». Запуск этого диалога осуществляется с помощью одновременного нажатия клавиш Win + R:

Выполнить cmd

В Windows XP (в отличие от последующих версий) в меню «Пуск» имеется специальный ярлык, который так и называется «Выполнить…». Если нажать на него, то диалог также запустится.

Запуск через поиск

Вызвать командную строку можно и другими способами. Вот они:

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

В версии Windows 8 есть другие способы запуска cmd. Также как и в 10-ке, про особенности которой можно узнать здесь подробнее.

Работа в командной строке

Чтобы «cmd» выполнил ту или иную команду, достаточно ввести её в окно, после чего нажать клавишу Enter. Для проверки можете ввести «help» — эта команда отобразит список всех имеющихся стандартных команд.

Команда help

Как вы могли заметить, их множество. Однако, это далеко не все команды, которые могут быть выполнены при помощи командной строки. Существует множество различных программ, которые также могут управляться через эту консоль. В принципе, «cmd» является расширяемой оболочкой, что говорит о возможности внесения в список выполняемых ею действий всё новых и новых команд.

Также необходимо знать, что большинство команд может быть выполнено лишь при условии ввода дополнительных обязательных параметров, другие поддерживают ключи (необязательные параметры). Попробуем при помощи командной строки выполнить некоторые действия над файлами и папками, в которых будут задействованы именно такие команды.

Попробуем перейти с одного локального диска на другой, просмотрим его содержимое, затем создадим папку, перейдём в неё, а в ней создадим ещё одну папку и удалим её. Интересная задачка? Главное, что для выполнения каждого отдельного действия потребуется задействовать разные команды. Начнём.

После запуска командной строки, вы могли заметить перед мигающим курсором адрес: «C:/Users/Имя пользователя» (в нашем случае — тут «Reptile»). Имя последней папки означает ваше текущее местоположение (то же самое, как если бы вы зашли в эту папку через Проводник). А «С:» — это локальный диск, на котором вы находитесь. Чтобы сменить текущий локальный диск, достаточно ввести его букву и двоеточие сразу после неё — например, «D:».

Смена диска

Так вы попадёте на диск «D:» (или любой другой). Чтобы просмотреть содержимое диска (или вообще любой папки) используется команда «dir». Введите её прямо здесь, и вы увидите список файлов и папок, имеющихся на диске «D:».

Команда dir

Теперь создадим папку прямо в корне диска. Для этого используем команду — «mkdir», а в качестве параметра через пробел нужно вписать имя будущей папки, например, «mkdir xp». В данном случае создастся папка с именем «xp».

Команда mkdir

После её создания можете войти через проводник на свой диск и убедиться, что папка была создана. Теперь зайдём в неё.

Для перехода в ту или иную папку используйте команду «cd». Здесь в качестве аргумента также используется имя каталога для перехода. Введём «cd xp» и попадём внутрь папки (сделаем эту папку текущей).

Команда cd

Создадим в папке ещё одну, используя команду «mkdir». Пусть это будет папка «123».

Создаем папку

Теперь удалим её. Для этого вводим «rmdir 123». Выполните теперь в каталоге «xp» команду «dir» и вы увидите, что папки «123» больше нет.

Результат удаления папки с помощью rmdir

Если вы захотите подробнее ознакомиться с описанием той или иной команды, просто введите ключ «/?» сразу после команды, и на экран будет выведена подсказка. Например, введите «dir /?». Другой вариант запуска подсказки: «help dir».

Вызов помощи по команде dir

Запомнить все существующие команды не просто — их огромное множество. На официальном сайте Microsoft имеется наиболее полное руководство по командной строке, хотя и описаний, выдаваемых командой help вполне достаточно.

Видео по теме

В Hearts of Iron IV нелегко завоевать несколько наций, не говоря уже о целом мире, но цель этого руководства — сделать все возможное, чтобы направить вас по пути, затрагивая темы, о которых редко говорят.

При этом это руководство предназначено для последнего DLC By Blood Alone. Так что, пожалуйста, отнеситесь к этому руководству со щепоткой соли от заядлого игрока Hearts of Iron IV.

Политическая власть и система

Обзор вашей нации и политической вкладки

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

По умолчанию вы будете получать 2 очка политической власти в день, хотя это можно изменить, увеличив свою стабильность, назначив правильных министров или отказавшись от национального фокуса. Следует также отметить, что выбор национального фокуса будет автоматически вычитать одно политическое очко каждый день, пока фокус не будет завершен.

Как выглядит национальный фокус экономики Германии

Когда вы начинаете игру, вы начинаете без PP, и это нормально. Что важно в начале игры, так это то, что вы выбираете национальную направленность и начинаете консолидировать свой PP. Когда у вас будет достаточно PP, вы можете выбрать советника. Рекомендуемым советником будет тот, кто обеспечивает дополнительный PP или стабильность, поскольку накопление PP позволяет вам принимать больше решений.

У вас может быть только три политических советника, так что выбирайте тщательно.

Некоторые политические советники — если стоит большой крестик, значит, они недоступны (пока)

Основная информация

(Слева направо) — политическая власть, стабильность, военная поддержка, рабочая сила, фабрики, количество топлива, снабжение, конвои.

Стабильность — это показатель поддержки народа вашего правительства и нации. Наличие большой стабильности может привести к некоторым мощным баффам, таким как увеличение производства фабрики и верфи. И наоборот, произойдет обратное, если ваша стабильность опустится ниже 50%. Стабильность можно повысить с помощью министров, решений и национальных лидеров.

Поддержка войны — это показатель того, насколько ваша нация настроена на войну. Наличие высокой военной поддержки повлечет за собой сильные баффы дивизии, когда вы сражаетесь на своей родине, и более высокую скорость мобилизации. Вы бы увидели, что агрессоры испытывают штраф к своей военной поддержке, в то время как обороняющиеся страны испытывают положительный рост.

Рекруты — это доступное количество людей, которых вы можете использовать для обучения дивизий, постройки кораблей или назначения в эскадрильи. Наличие высокой рабочей силы зависит от вашего закона о воинской повинности, закона об оккупации, территории и национального духа.

Фабрики — это общее количество доступных вам фабрик. Все они включают военные заводы, военно-морские верфи и гражданские заводы. Вы можете навести курсор на значок, чтобы получить разбивку.

Топливо является движущей силой каждой армии, так как в нем нуждаются танки, грузовики, корабли и самолеты. Указан индикатор того, сколько времени требуется для заполнения ваших силосов. Производство можно увеличить, приобретая больше нефти с помощью торговли, завоеваний или экономических законов. Хранилище можно увеличить, построив больше силосов.

Некоторые решения могут повысить вашу стабильность

Крайне важно, чтобы все ваши цифры в верхней информационной панели находились на высоком уровне, иначе это негативно повлияет на усилия вашей страны по подготовке к войне.

Опыт и ЗП

Экран офицерского корпуса без авиации

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

Опыт армии , флота и ВВС можно найти прямо рядом с CP. Их можно получить, назначив начальника в различные ветви, тренируя свои силы или участвуя в конфликтах. Полученный здесь опыт можно использовать для различных функций, кроме обычных для настройки духа офицерского корпуса и открытия новых доктрин.

Армейский опыт позволяет вам редактировать шаблоны ваших дивизий и создавать варианты для ваших танков.

Navy XP позволяет вам редактировать шаблоны кораблей, добавлять новые детали или использовать их в качестве сокращения в ваших военно-морских исследованиях.

Air Force XP можно потратить на дизайн вашего самолета, что позволяет вносить модификации.

Боевые планы группы армий и/или армии

В начале лучше организовать свои войска в различные армии и группы армий. После этого вам нужно будет установить линии фронта. Я рекомендую устанавливать линии фронта по группам армий, а не по армиям, так как это обеспечит большую гибкость.

Поскольку вы не собираетесь воевать в начале игры, не стесняйтесь переводить свои войска в режим упражнений, чтобы вы могли сразу же заработать XP. Если вам нужно больше опыта, найдите духов офицерского корпуса, которые дают вам больше ежедневного опыта, чтобы вы могли разблокировать свои доктрины как можно скорее, давая вам значительное преимущество перед вашими врагами.

Исследовать

Обзор текущих исследовательских проектов

В настоящее время существует 8 категорий исследований (слева направо): пехота, роты поддержки, бронетехника, артиллерия, флот, морская поддержка, авиация, инженерия и промышленность. 

Пехота содержит пехотную технику, моторизованную технику и силы специального назначения.

Вспомогательные компании содержат вспомогательные компании и проекты поездов.

 Броня содержит танковые конструкции и оборудование.

Артиллерия включает артиллерийские, реактивные, противовоздушные и противотанковые средства.

Naval содержит корпуса кораблей, а также некоторое оборудование.

Морская поддержка содержит вооружение, торпеды, средства защиты от повреждений, транспорты и мины.

Air содержит самолеты, их авианосцы и реактивные истребители.

Инженерия содержит радио, радар, ракеты, атомную энергию и ядерные бомбы.

Промышленность включает в себя производство, строительство, добычу ресурсов, добычу нефти и отраслевую доктрину.

     

    Пример разумного времени исследования

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

Поставлять

Пример хорошей системы снабжения

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

Есть три варианта получения наилучшего транспортного средства: кавалерия играет основную роль, а два других выполняются моторизованными и механизированными подразделениями. Кавалерия может добраться только до определенного предела, в то время как моторизованный и механизированный транспорт позволит узлу снабжения расшириться дальше. Следует отметить, что поезда также необходимы для доставки грузов из одного узла в другой.

   

                            Судя по значку лошади, эта армия использует кавалерию для перевозки

После того, как вы назначите армии на их линии фронта, важно проверить, есть ли у каких-либо юнитов красный значок черепа рядом со значком их юнита. Если есть, рекомендуется добавить дополнительные здания снабжения, сократить количество войск в этой провинции или изменить транспорт снабжения на моторизованный или механизированный.

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

Шаблоны отделов

Рекомендуемый шаблон подразделения: добавляйте компании поддержки по своему усмотрению

Максимальное количество частей, которые можно добавить в свои дивизии, составляет 25 полков и 5 рот поддержки. К сожалению, пока нет возможности настроить это.

Список статистики можно найти справа от шаблона дивизиона. Поскольку это довольно большой выбор, мы рассмотрим некоторые ключевые характеристики:

Организация — насколько организована дивизия, чем выше организованность, тем дольше она может продержаться в бою.

Скорость восстановления — насколько быстро ваше подразделение восстанавливает свою организацию, позволяя ему организовывать дальнейшие атаки или сопротивление.

Мягкая атака — насколько эффективна дивизия против пехоты, хотя иногда под это влияние могут попадать и грузовики.

Тяжелая атака — насколько эффективна дивизия при столкновении с бронетехникой.

Боевая ширина — сколько места потребуется, чтобы вывести его на поле боя.

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

        

          По мере продвижения по дереву исследований вы сможете разблокировать больше типов юнитов.
 

Как только вы получите XP, вы можете начать возиться с шаблонами дивизий. Добавление роты поддержки стоит 10 XP, а добавление батальона — 5 XP. На данный момент лучше иметь единый шаблон для всей вашей армии, но как только вы освоите его, не стесняйтесь вносить изменения и экспериментировать.

Генералы и способности

Пример черт генерала

Генерал по умолчанию будет командовать 24 дивизиями, если только он не выполняет гарнизонные обязанности или если у него есть черта квалифицированный штаб. Фельдмаршал подпадает под тот же мыслительный процесс, хотя им требуется черта эксперта-делегатора вместо черты квалифицированного штатного сотрудника.

У генералов и фельдмаршалов есть навыки (неприобретаемые, которые наследуются или генерируются случайным образом) и способности, приобретение или использование которых стоит CP, которые они могут получить в зависимости от своих характеристик.


Основные три способности

Как только офицер достигает уровня 4, он может быть повышен до высшего командного состава в зависимости от ролей, доступных для его черт. По мере их продвижения бонусы, которые они предоставляют, также будут увеличиваться.

 

Пример доступных офицеров для высшего командования

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

Строительство

По конструкции выделяют три категории:

Государственные структуры:

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

Авиабазы ​​позволяют размещать там самолеты. На каждом уровне можно разместить 200 самолетов.

Противовоздушная оборона будет защищать вашу территорию от воздушных атак противника до тех пор, пока она выполняется над штатом, в котором находится ПВО.

Радиолокационная станция позволит вам обнаруживать вражеские локации, предоставлять информацию и позволит вашим воздушным крыльям лучше обнаруживать врага. Наличие радара более высокого уровня расширит его дальность действия.

Общие структуры:

Военный завод позволяет производить оружие, броню, вспомогательное оборудование, самолеты и т. д.

Гражданские фабрики позволяют строить новые здания, импортировать ресурсы или ремонтировать поврежденные объекты.

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

Синтетические очистительные заводы позволят вам производить нефть и каучук без необходимости их импорта, что очень полезно, если у вас нет ни того, ни другого материала. 

Ракетные площадки будут производить ракеты, а также позволят вам запускать ракеты с указанных площадок.

Ядерные реакторы позволят вам производить ядерное оружие.

Провинциальные постройки:

Морские базы позволяют размещать и ремонтировать флоты в этой провинции. Он также действует как точка снабжения, в которой можно разгрузить припасы. Более высокая военно-морская база также позволит ремонтировать больше кораблей одновременно.

Наземные форты сведут на нет атаку врага на эту провинцию, хотя атака с нескольких направлений снизит дебафф на атакующем.

Прибрежные форты работают почти так же, как наземные форты, за исключением того, что на этот раз они служат оплотом против морских вторжений.

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

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

Точно так же вы можете строить точки снабжения, чтобы поддерживать свою армию в порядке.

Дипломатия

Вкладка дипломатии позволит вам увидеть список стран, а также действия, которые можно предпринять против них или по отношению к ним. Дипломатические действия, как правило, не требуют какой-либо политической власти, но есть некоторые, такие как гарантия независимости, улучшение отношений и отправка атташе (что требует первоначальной стоимости CP, а также снижения вашего максимального CP, пока атташе все еще активен) . 

Кроме того, вы можете просмотреть собственное мнение другой страны, а также свои разведданные об этой стране на вкладке дипломатии.

 

Некоторые дипломатические действия, которые вы можете предпринять

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

Чрезвычайно популярная стратегия для Германии состоит в том, чтобы оправдать цель войны против Польши, завоевать ее, а затем взять на себя Советский Союз, поскольку он сталкивается с массовыми негативными эффектами от сталинской чистки или даже возможной гражданской войны на их стороне.

Решения

Пример решения для Германии

Вкладка решений позволяет вам просматривать доступные решения или события для ваших наций. Решения обычно требуют активации PP, а также могут потребовать дополнительных обязательств, таких как сокращение ежедневного прироста PP или количество гражданских заводов.

Решения будут включать специальные проекты, смену правительств, объявление войны, запрет других политических партий, цензуру прессы и другие.

Прежде чем принимать какие-либо решения, очень важно, чтобы вы в первую очередь прочитали их последствия, поскольку некоторые из них могут привести к войне с нациями, которых вы не ожидали. Однажды принятое решение не может быть отменено, поэтому разумный выбор — правильный способ пройти через это.

Поскольку вы можете снизить популярность оппозиции с помощью решений, рекомендуется пойти по этому пути с решением «институт цензуры прессы», поскольку более высокая популярность правящей партии приведет к большей стабильности и большему ежедневному приросту PP.

Торговля

Обзор вкладки торговли для Германии

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

Можно изменить законы о торговле, чтобы уменьшить количество ресурсов, покидающих вашу страну, но это снизит производительность вашей фабрики, верфи и скорость исследований. В качестве альтернативы применяется обратное: если вы экспортируете больше ресурсов, вместо этого вы получаете выгоду.

Вы можете импортировать ресурсы из других стран и выбрать, сколько ресурсов (обычно 1 гражданская фабрика равняется 8 ресурсам, если только страна-экспортер не является марионеткой) вы хотите импортировать, а также по морю (что требует конвоев) или по суше (что не ничего не требовать).

 

Взгляд на то, что потребуется для импорта ресурсов из другой страны

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

Спецслужба

Обзор разведывательного управления Германии

Вкладка «Разведывательное агентство» позволяет вам построить разведывательное агентство для вашей страны или, если оно уже существует, применять улучшения, нанимать агентов и запускать миссии. Для всех улучшений агентства требуются гражданские заводы, и на их завершение уйдет 30 дней. Точно так же агентам нужен период ожидания, прежде чем их можно будет завербовать.

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

Производство

Обзор вкладки недоиспользованной и недопоставленной продукции

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

Скорость производства можно регулировать, выделяя больше фабрик/верфей, национальные духи, отраслевые исследования или повышая предел эффективности, хотя следует сказать, что в краткосрочной перспективе производство страдает, когда вы добавляете больше фабрик или меняете оборудование на ровном месте. .

Кроме того, вам также потребуются ресурсы, чтобы поддерживать производство в рабочем состоянии, так как нехватка ресурсов легко приведет к замедлению производства для проектов, для которых требуется этот конкретный ресурс.

Полная производственная линия, как видно на зеленой полосе выше, уже достигла предела своего производства.

Как и во многих других стратегических играх, вам нужно расставить приоритеты в том, какое оборудование имеет наибольшее значение. По умолчанию самым важным снаряжением является снаряжение пехоты, так как ни одна армия или конвой не могут функционировать без соответствующих потребностей. 

Здесь нет правильного или неправильного ответа с точки зрения выбора производственной линии, но если вам нужны какие-либо советы, проверьте вкладку логистики, так как она покажет вам список необходимого оборудования, сколько у вас еще есть в наличии, сколько нужно еще, и сколько нужно в день.

Наймите и разверните

Вкладка «Набор и развертывание» (обратите внимание, что дивизия не может быть развернута из-за отсутствия местоположения)

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

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

Если вам требуется немедленное развертывание отряда, слева от значка закрытия есть небольшая вкладка, которая позволит вам положить отряд, если он обучен не менее чем на 20%. 

Как и в случае с производством, наличие большего количества юнитов в начале игры зависит от вас. Для этого потребуется больше снаряжения, то есть обучение этих дивизий займет некоторое время, но положительная сторона в том, что вы сможете прикрыть больше линий фронта. Аналогично, здесь применимо и обратное.

Понравилась статья? Поделить с друзьями:
  • Производственная инструкция по эксплуатации предохранительных устройств
  • Ниссан жук мануал по ремонту
  • Placenta extract gel индия инструкция по применению состав
  • Руководство по организации деятельности мировых
  • Сбербанк как обратиться к руководству