guides/git-terminal.md at master · netology-code/guides · GitHub

Основные команды для работы с github

  • git remote add origin ssh-address – привязать локальный репозиторий к удаленному и назвать его origin

  • git remote -v – показать связь с удаленными репозиториями

  • git clone ssh-address – клонировать удаленный репозитрий

  • git push origin master – отправить текущую локальную ветку в ветку master репозитория origin

  • git pull origin master – получить изменения из ветки master репозитория origin

Что такое git и зачем он нужен?

Git – это консольная утилита, для отслеживания и ведения истории изменения файлов, в вашем проекте. Чаще всего его используют для кода, но можно и для других файлов. Например, для картинок – полезно для дизайнеров.

С помощью Git-a вы можете откатить свой проект до более старой версии, сравнивать, анализировать или сливать свои изменения в репозиторий.

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

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

Первоначальная настройка git

После установки Git первое, что мы сделаем – укажем наши имя и адрес электронной почты. Это важно, потому как этой информацией подписывается каждый коммит (кто сделал изменения и его электронная почта). Для настройки потребуется ввести команды:

Если указана опция –global, настройки применятся глобально, то есть для всех ваших действий в системе Git. Без этой опции настройки применяются локально, для текущего репозитория, и не влияют на глобальные настройки.

Введение

Данное краткое руководство демонстрирует основные команды в терминале Bash:

  • Bash (Linux/Mac)
  • Git Bash (Windows)

Не хочу каждый раз указывать путь, что делать?

  • git push -u origin branch-one – привязать текущую локальную ветку к удаленной branch-one

    • если нужно назвать удаленную ветку иначе, используйте : (например, branch-one:branch-1)
    • теперь можно использовать git push в ветке branch-one
  • git branch -vv – показать связь локальных и удаленных веток

“короткий путь”

Зачастую навигация в терминале сводится к попеременному вводу команд листинга

и, после просмотра содержимого текущей директории, выбору следующей директории.

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

При этом уже набранный текст команды будет на новой строке, а выше мы увидим содержимое следующей директории.

How do i sign out in the git bash console in windows?

First, user authentication has nothing to do with user.name and user.email git config.

And second, compared to the old answer “remove credentials from git“, the latest Git for Windows uses Git Credential Manager (Git 2.9.2 => GCM 1.5.0).

Check your config (git config -l) and see if “manager” (or, more recently, 2020 : “manager-core“) is registered there.
If not, set it up with:

 git config --global credential.helper manager-core

Since its v1.3.0 (April 2022), it had a delete command to purge credentials.

git credential-manager delete <url>

Update 2022: “delete” is now deprecated, use reject:

Update 2020: “

reject

” is now deprecated, use

erase

:

git credential-manager erase <url>

Actually, whatever ‘xxx‘ credential manager you are using (‘xxx‘ being the result of git config credential.helper), you can do:

printf "protocol=httpsnhost=github.com" | git-credential-xxx erase

# Windows (2020-2021)
printf "protocol=httpsnhost=github.com" | git-credential-manager-core erase

# Linux
printf "protocol=httpsnhost=github.com" | git-credential-libsecret erase

# MacOs
printf "protocol=httpsnhost=github.com" | git-credential-osxkeychain erase

This is better than fiddling with the Credential Manager of your OS.

That git-credential-xxx executable is in usr/libexec/git-core or (for Windows) mingw64/libexec/git-core of your Git installation.
As mentioned here, on MacOS, it should already be in /usr/local/git/bin/.


If git config credential-manager returns store, then Git uses the “store” mode, which saves the credentials to a plain-text file on disk, and they never expire.

type %USERPROFILE%.git-credentials

I would remove that particular credential helper from the config, as it stores credentials in plain text.


The OP Lord Rixuel actually confirms in the comments it is a native Windows Credential Manager function which provides automatically (Git or not) the credentials:

I see the “Manage your credentials” option, I click on it out of curiosity, then I click on “Windows Credentials”, under “Generic Credentials”, there is “git:vhod-v-lichnyj-kabinet.ru“;, I click on it and there is the “Remove” option. I clicked Remove.

When I do a git push, it asks again for my user and my password. Exactly what I want when I want to sign out.

How does ssh client generate the key fingerprint?

in short, the finger print is generated as a hash from public key; taking my own key finger print as an example, you can generate the hash using ssh-keygen utility

$ssh-keygen -t ecdsa -lf ~/.ssh/id_rsa.pub2048 SHA256:3 amMaDucpmYkx2sLhHIsmmmmmmmmmmmmmmmmmmmm chaoshi@chaoshi-mac (RSA)

or if you wish to know what happens under the hood (tested on mac):

$awk ‘{print $2}’ ~/.ssh/id_rsa.pub | base64 -D | shasum -a 256 | sed ‘s/ .*$//’ | xxd -r -p | base643 amMaDucpmYkx2sLhHIsmmmmmmmmmmmmmmmmmmmm=

read more:

Linux

В Linux достаточно щёлкнуть правой кнопкой мыши на каталоге и выбрать пункт меню Open in Terminal или Открыть в терминале:

Vs code

В видео-лекциях используется VS Code. В Windows вы можете правой кнопкой открыть каталог сразу в VS Code.

В Mac OS и Linux вы можете открыть терминал по адресу папки и в терминале выполнить команду code . &, которая откроет выбранный вами каталог в этом редакторе.

Если ни то, ни другое у вас не получилось, то просто откройте VS Code и через File – Open откройте нужный каталог.

What happens when you ssh to gitlab?

In short, mutualauthentication is done here;

Windows (git bash)

В Windows всё достаточно просто – клик правой кнопкой мыши на каталоге и выбор Git Bash Here:

Автодополнение

В командных оболочках работает автодополнение по клавише Tab:

  • дополняются имена команд;
  • дополняются пути.

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

Визуальный интерфейс

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

Но существуют и отдельные программы по работе с Git. Могу посоветовать эти:

Я не буду рассказывать как они работают. Предлагаю разобраться с этим самостоятельно.

Как работает

Если посмотреть на картинку, то становиться чуть проще с пониманием. Каждый кружок, это commit. Стрелочки показывают направление, из какого commit сделан следующий. Например C3 сделан из С2 и т. д. Все эти commit находятся в ветке под названием main.

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

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

Ключевые команды

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

Копирование/вставка

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

Для вставки в поле ввода терминала можно также воспользоваться контекстным меню мышки или зажать Shift Ins:

Иногда может работать вставка по нажатию на колёсико мышки (средняя кнопка).

Листинг каталога

ls – сокращение от “List”.

Отображает листинг (содержимое каталога):

По умолчанию, ls не отображает файлы, начинающиеся с ., например, .gitignore. Для отображения таких файлов нужно использовать флаг -a:

Настройка

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

Открываем терминал (Linux и MacOS) или консоль (Windows) и вводим следующие команды.

Открытие терминала

Первая задача: открыть терминал сразу в нужном каталоге.

Переменные окружения

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

Перемещение файлов и каталогов

mv – сокращение от “Move”.

Перемещение (переименование) файлов и каталогов:

Примеры для прояснения разума

  1. Находимся в ветке branch-one, хотим создать эту ветку в удаленном репозитории.

    • git push origin branch-one – отправить текущую локальную ветку в ветку branch-one

Процесс работы с git

Не стоит после каждого изменения файла делать commit. Чаще всего их создают, когда:

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

Работа с форком

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

Автоматически форк не синхронизируется с мастер-репозиторием.Сделаем это самостоятельно:

  1. Clone or download > Clnoe with SSH – скопировать ssh-адрес мастер-репозитория (откуда был сделан форк)
  2. git clone ssh-address – клонировать форк
  3. git remote add master-repos ssh-address – установить связь с мастер-репозиторием и назвать его master-repos
  4. git pull master-repos master – синхронизировать клон с веткой master мастер-репозитория
  5. git push – отправить изменения в свой форк

Теперь для получения изменений из мастер-репозитория будем использовать последние два пункта.

Работа со своим новым репозиторием

Случай, когда удаленный репозиторий только создан.

Здесь все просто, при создании репозитория (Repositories > New) GitHub сам подсказывает, что делать:

  1. gite remote add origin ssh-address – установить связь с удаленным репозиторием
  2. git push -u origin master – запушить коммиты в удаленный репозиторий
    • в следующий раз из локальной ветки master можно использовать просто git push

Работа со своим, уже созданным, репозиторием

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

Например, вы хотите работать со своим репозиторием с другого компьютера.

  1. Clone or download > Clnoe with SSH – скопировать ssh-адрес
  2. git clone ssh-address – клонировать удаленный репозиторий

Смена рабочего каталога

cd – сокращение от “Change Directory”.

Переход в определённый каталог:

path может быть как абсолютным, так и относительным путём.

Например, перейти на каталог выше:

Перейти в подкаталог src:

Если перед путём нет слеша – он трактуется как относительный (относительно текущего каталога).

Создаем свой первый проект и выкладываем на github

Давайте разберемся как это сделать, с помощью среды разработки Visual Studio Code (VS Code).

Перед началом предлагаю зарегистрироваться на GitHub.

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

После открываем VS Code .

  1. Установите себе дополнительно анализаторы кода для JavaScript и PHP

  2. Откройте вашу папку, которую создали ранее

После этого у вас появится вот такой интерфейс

  1. Здесь будут располагаться все файлы вашего проекта

  2. Здесь можно работать с Git-ом

  3. Кнопка для создания нового файла

  4. Кнопка для создания новой папки

Если ваш проект пустой, как у меня, то создайте новый файл и назовите его index.html . После этого откроется окно редактирование этого файла. Напишите в нем ! и нажмите кнопку Tab . Автоматически должен сгенерироваться скелет пустой HTML страницы. Не забудьте нажать ctrl s чтобы файл сохранился.

Давайте теперь перейдем во вкладу для работы с Git-ом.

Откроется вот такое окно:

  1. Кнопка для публикации нашего проекта на GitHub

  2. После нажатия на кнопку 1 , появится всплывающее окно. Нужно выбрать второй вариант или там где присутствует фраза ...public repository

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

После того, как выбрали “Опубликовать на GitHub публичный репозиторий” (пункт 2), программа предложит вам выбрать файлы, которые будут входить в первый commit. Проставляем галочки у всех файлов, если не проставлены и жмем ОК . Вас перекинет на сайт GitHub, где нужно будет подтвердить вход в аккаунт.

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

Теперь сделаем изменения в коде и попробуем их снова опубликовать. Перейдите во вкладку с файлами, отредактируйте какой-нибудь файл, не забудьте нажать crtl s (Windows) или cmd s (MacOS), чтобы сохранить файл. Вернитесь обратно во вкладу управления Git.

Если посмотреть на значок вкладки Git, то можно увидеть цифру 1 в синем кружке. Она означает, сколько файлов у нас изменено и незакоммичено. Давайте его закоммитим и опубликуем:

Создание каталогов

mkdir – сокращения от “Make Directory”.

Позволяет создавать каталоги (создаст каталог tmp в текущем каталоге):

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

Это справедливо и при клонировании удалённого репозитория с помощью команды git clone <repo_url>. Полностью склонированный репозиторий создаст каталог в текущей директории с именем проекта, в который нужно перейти командой cd repo_name.

Создание репозитория

Теперь вы готовы к работе с Git локально на компьютере.

Создадим наш первый репозиторий. Для этого пройдите в папку вашего проекта.

Создание файлов

Для создания файлов используются специальные программы (например, для создания текстовых файлов – текстовые редакторы).

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

Текущий рабочий каталог

pwd – сокращение от “Print Working Directory”.

Отображение текущего рабочего каталога:

У нас конфликт, вызывать полицию?

Конфликт возникает при неудачном автоматическом слиянии.

Допустим, мы добавили background-color: #000, делаем пуш, а Git нам говорит,что изменения уже до вас кто-то сделал, сначала заберите их.Мы забираем изменения и понимаем, что кто-то тоже добавил цвет фона, но другой.

Что делать?

  1. Открыть файл main.css
  2. Решить конфликт самостоятельно

Удаление файлов и каталогов

rm – сокращение от “Remove”.

Удаление файла:

Удаление непустого каталога:

Для удаления непустого каталога необходимо указать флаги:

  • -r – удалять рекурсивно;
  • -f – не спрашивать подтверждения.

Установка

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

Но для начала, все же установим сам Git.

#Если установлен Homebrew
brew install git

#Если нет, то вводим эту команду. 
git --version
#После этого появится окно, где предложит установить Command Line Tools (CLT).
#Соглашаемся и ждем установки. Вместе с CLT установиться и git
# Debian или Ubuntu
sudo apt install git

# CentOS
sudo yum install git

Выход из программы вывода текста

Бывает, Git пытается нам сказать намного больше, чем умещается в окне терминала. Для этого он пользуется постраничным выводом и когда ему уже нечего выводить появляется метка конца данных (END) или :END. Например, конец вывода команды git log:

Для того чтобы покинуть программу вывода, нужно нажать клавишу q (сокращение от слова “quit” – покинуть) на английской раскладке клавиатуры.

Похожее:  Мобильный банк

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *