Знайте, что такое git, локальные и удаленные репозитории, часто используемые команды git, потоки команд git и их использование.

Git - один из главных навыков, которым должен обладать каждый разработчик. Это упрощает SDLC. Изучить Git так же просто, как и любой другой инструмент. Git - это наиболее широко используемая система контроля версий на сегодняшний день в мире и считается современным стандартом для разработки программного обеспечения. Это руководство поможет вам понять основы git, наиболее часто используемые команды git, их использование и операции.

Что такое Git?

Git - это бесплатная система (инструмент) контроля версий с открытым исходным кодом. В отличие от старых централизованных систем контроля версий, таких как SVN и CVS, Git распространяется: каждый разработчик имеет полную историю своего репозитория кода локально.

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

Что такое репозиторий Git?

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

Что такое локальный репозиторий Git?

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

Что такое удаленный репозиторий Git?

Удаленный репозиторий Git - это виртуальное хранилище вашего проекта на серверах хостинга git, таких как GitHub или Bitbucket. У него такая же копия вашего проекта, как и у вас локально.

Чтобы понять это, давайте посмотрим на схему ниже:

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

Начнем с основных команд Git:

Я собираюсь использовать Windows-машину, чтобы продемонстрировать команды. Итак, вам нужно установить git на Windows, если вы собираетесь запускать / использовать машину с Windows.

1. git init <directory> : команда создает пустой репозиторий git в указанном <directory>. Если вы запустите его без аргументов, он инициализирует текущий каталог как репозиторий git.

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

2. git clone <repo>: команда клонирует репозиторий, расположенный по адресу <repo> на локальном компьютере. Исходное репо может быть расположено в локальной файловой системе или на удаленном компьютере через HTTP или ssh.

В приведенном выше процессе вы можете увидеть, что я клонировал удаленное репо 'myRemoteGitRepo' по адресу https://github.com/vikramguptavit/myRemoteGitRepo.git с помощью git clone в каталог myLocalGitClonedRepo .

3. git config user.name <name>: он определяет имя автора, которое будет использоваться для всех коммитов в текущем репо. Разработчики обычно используют--globalflag, чтобы установить параметры конфигурации для текущего пользователя.

4.git add <directory> or <file>: эта команда помещает все изменения <directory> или <file> в индекс (промежуточную область) для следующей фиксации.

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

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

5.git commit -m "<message>": С помощью этой команды вы можете зафиксировать поэтапный снимок (файлы, которые вы добавили в промежуточную область). Также вместо запуска текстового редактора используйте "<message>" в качестве сообщения фиксации.

6.git status: в нем перечислены файлы, которые являются промежуточными, неустановленными и неотслеживаемыми.

7.git log: Эта команда отображает всю историю фиксации в формате по умолчанию. Вы можете использовать эту команду с настраиваемыми параметрами, чтобы увидеть вывод в другом формате.

8.git diff: Покажите разницу между вашим индексом (промежуточной областью) и рабочим каталогом.

Я зафиксировал файл test.txt следующего содержания:

Happy to see you …

Который позже я изменил на:

Happy to see you …
Hey you are back…

промежуточная область и локальное репо имеют одну и ту же копию test.txt

Ниже представлен вывод команды git diff:

9.git restore --staged <file>: Используйте эту команду, чтобы убрать изменения из промежуточной области после их добавления с помощью команды git add. Эта команда полезна, когда вы хотите изменить / обновить файл, который вы только что подготовили.

Теперь посмотрим, как переписать историю Git с помощью команд Git:

1.git commit --amend: он заменит последнюю фиксацию вместе с поэтапными изменениями и последней фиксацией. Если ничего не поставлено, то его можно использовать для редактирования сообщения последнего коммита.

Я добавил новую строку в файл test.txt, затем добавил ее в промежуточную область с помощью команды git add, а затем использовал команду git commit - modify для замены последняя фиксация вместе с поэтапными изменениями и последней фиксацией. На изображении выше вы можете видеть, что после команды git log отображается только одна фиксация.

2.git rebase <base>: переустановите текущую ветку на <base>. <base> может быть идентификатором фиксации, именем ветки, тегом или относительной ссылкой на HEAD.

Я вырезал новую ветку myLocalDevBranch из основной ветки, а затем создал новый файл test2.txt в этой ветке, а затем добавил и зафиксировал этот файл в этой ветке.

Выполнение git перебазирования функциональной ветки в основную ветку.

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

HEAD - это ссылка / указатель, который относится к последней фиксации в текущей ветке.

3.git reflog: показать журнал изменений в HEAD локального репозитория. Добавьте флаг --relative-date для отображения информации о дате или --all для отображения всех ссылок.

Вот команды, связанные с ветвлением Git:

1.git branch: перечислите все ветки в вашем репо. Добавьте <branch> в качестве аргумента , чтобы создать новую ветку с именем <branch>.

Я создал ветку myFeatureBranch из ветки master, а затем переключился на эту ветвь.

2.git checkout -b <branch>: создайте и проверьте новую ветку с именем <branch>. Отбросьте флаг -b, чтобы проверить существующую ветку.

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

3.git merge <branch>: объединить <branch> в текущую ветку.

1. главная ветка с 2 коммитами

2. Ветка myLocalDevBranch с теми же двумя коммитами (ветка dev вырезана из основной ветки)

3. добавление нового коммита в ветку dev

4. объединение ветки dev в ветку master

Команды Git, связанные с отменой изменений Git:

  1. git revert <commit>: создайте новую фиксацию, которая отменяет все изменения, внесенные в <commit>, затем примените ее к текущей ветви.

HEAD указывает на совершение 91ca1f35ca950d4db50700e0dfca59ac9e18f794

откат фиксации 91ca1f35ca950d4db50700e0dfca59ac9e18f794

Теперь HEAD указывает на новую фиксацию 5dc6c2d985e2653421a1d43e1274248d79c18250

2.git reset <file>: удалите <file> из промежуточной области, но оставьте рабочий каталог без изменений. Это отменяет этапирование файла без перезаписи каких-либо изменений.

3.git clean -n: показывает, какие файлы будут удалены из рабочего каталога. Используйте флаг -f вместо флага -n для выполнения очистки.

Команды Git, относящиеся к удаленным репозиториям:

1.git remote add <remote> <url>: Создайте новое подключение к удаленному репо. После добавления пульта вы можете использовать его как ярлык для других команд.

2.git fetch <remote> <branch>: извлекает конкретный <branch> из удаленного репо. Не отключайте <branch>, чтобы получать все удаленные ссылки.

3.git pull <remote>: получить указанную удаленную копию текущей ветви и немедленно объединить ее с локальной копией.

4.git push <remote> <branch>: Переместите ветку на <remote> вместе с необходимыми коммитами и объектами. Создает именованную ветку в удаленном репо, если она не существует.

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