Giter Site home page Giter Site logo

seminar-23-12-2022's Introduction

Инструкция по работе с Git

Что такое гит?

Git - самая популярная реализация распределённой системы контроля версий(версионность поддерживается и на сервере, и у каждого клиента). Самой распространнённой реализацией Git является (GitHub)[https://github.com]

Подготовка репозитория

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

Создание коммитов

Добавление файлов к коммиту

Для добавления файла к новому коммиту используется команда git add. Используется она следующим образом: в терминале с папкой-репозиторием пишем git add <название файла>.

Создание коммита

Для создание новой фиксации(коммита) используется команда git commit. Для этого в терминале с папкой-репозиторием пишем git commit -m "<сообщение к коммиту>. Сообщение к коммиту писать ОБЯЗАТЕЛЬНО!!!

Журнал изменений

Для просмотра истории изменений используется команда git log. Для этого в терминале с папкой-репозиторием необходимо написать git log

Перемещение между коммитами

Для перемещения на другую фиксацию(коммит) используется команда git checkout. Для этого необходимо, как показано в прошлом пункте, в журнале изменений найти необходимый коммит и его хеш(номер), после чего в терминале с папкой-репозиторием надо написать git checkout <хеш коммита>. После выполнения этой команды мы попадаем в состояние detached head, в котором никакие следующие коммиты сохраняться не будут. Для выхода из этого состояния необходимо написать git checkout master.

Ветки в гит

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

Для создание новой ветки используется команда git branch. Для этого в терминале с папкой-репозиторием необходимо написать git branch <название ветки>.

Просмотр списка веток

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

Перемещение между ветками

Для перехода на другую ветку используется команда git checkout. Для этого в терминале с папкой-репозиторием необходимо написать git checkout <название ветки>. Такая ветка должна существовать.

Слияние веток и разрешение конфликтов

Слияние веток и разрешение конфликтов...

Удаление веток

Работа с удаленными репозиториями

Сперва, нужно зарегистрироваться на GitHub, если это не было сделалано или подключить нужную ветку и отправить изменения локального репозитория. Перед началом работы вводим команду git init, открываем свой репозиторий и подключаемся к удаленному репозиторию командой git remote add origin https://github.com/имя_ник_пользователя/ИмяРепозитория.git, где «имя_ник_пользователя» — ник пользователя удаленного репозитория. «ИмяРепозитория» — это имя нашего уже созданного заранее репозитория на GitHub. Можно просмотреть список настроенных удалённых репозиториев командой git remote. Она выведет названия доступных удалённых репозиториев:

$ git clone https://github.com/... Cloning into 'ticgit'... remote: Reusing existing pack: 1857, done. remote: Total 1857 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1857/1857), 374.35 KiB | 268.00 KiB/s, done. Resolving deltas: 100% (772/772), done. Checking connectivity... done. $ cd ticgit $ git remote origin

Чтобы просмотреть адреса для чтения и записи, привязанные к репозиторию можно вводим git remote -v:

$ git remote -v origin https://github.com/... (fetch) origin https://github.com/... (push)

Для того, чтобы добавить удалённый репозиторий и присвоить ему имя (shortname), просто выполните команду git remote add <короткое имя> :

$ git remote origin $ git remote add pb https://github.com/прол/ $ git remote -v origin https://github.com/прол (fetch) origin https://github.com/прол (push) pb https://github.com/paulboone/ (fetch) pb https://github.com/paulboone/ (push)

<короткое имя> это короткое имя которое будет ассоциировано с удаленным репозиторием.

Клонирование удаленного репозитория

Необходимость клонировать существующий удаленный репозиторий возникает в ситуациях, когда нужно поработать над уже существующим кодом. Для выполнения этой операции предусмотрена команда git clone, которая вводится так: git clone <ссылка на удаленный репозиторий>. После этого в директории, откуда запущена команда git clone, создается директория с именем репозитория. В созданную директорию копируется репозиторий, все его ветки и коммиты. В новосозданный локальный репозиторий добавляется удаленный репозиторий с именем origin и ссылкой, которую мы передавали в git clone. Это избавляет нас от необходимости вручную писать git remote add origin https://..... На этом процесс клонирования заканчивается.

Получение изменений из удаленного репозитория

для получения данных из удалённых проектов, следует выполнить:

$ git fetch [remote-name] Данная команда связывается с указанным удалённым проектом и забирает все те данные проекта, которых у вас ещё нет. После того как вы выполнили команду, у вас должны появиться ссылки на все ветки из этого удалённого проекта, которые вы можете просмотреть или слить в любой момент.

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

Если ветка настроена на отслеживание удалённой ветки, то вы можете использовать команду git pull чтобы автоматически получить изменения из удалённой ветки и слить их со своей текущей. Этот способ может для вас оказаться более простым или более удобным. К тому же, по умолчанию команда git clone автоматически настраивает вашу локальную ветку master на отслеживание удалённой ветки master на сервере, с которого вы клонировали репозиторий. Название веток может быть другим и зависит от ветки по умолчанию на сервере. Выполнение git pull, как правило, извлекает (fetch) данные с сервера, с которого вы изначально клонировали, и автоматически пытается слить (merge) их с кодом, над которым вы в данный момент работаете.

Отправка изменений в удаленный репозиторий

Когда вы хотите поделиться своими наработками, вам необходимо отправить их в удалённый репозиторий вводим команду: git push . Чтобы отправить вашу ветку master на сервер origin (повторимся, что клонирование обычно настраивает оба этих имени автоматически), вы можете выполнить следующую команду для отправки ваших коммитов:

$ git push origin master Эта команда срабатывает только в случае, если вы клонировали с сервера, на котором у вас есть права на запись, и если никто другой с тех пор не выполнял команду push. Если вы и кто-то ещё одновременно клонируете, затем он выполняет команду push, а после него выполнить команду push попытаетесь вы, то ваш push точно будет отклонён. Вам придётся сначала получить изменения и объединить их с вашими и только после этого вам будет позволено выполнить push.

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

Если хотите получить побольше информации об одном из удалённых репозиториев, вы можете использовать команду git remote show . Выполнив эту команду с некоторым именем, например, origin, вы получите следующий результат:

$ git remote show origin

  • remote origin Fetch URL: https://github.com/schacon/ticgit Push URL: https://github.com/schacon/ticgit HEAD branch: master Remote branches: master tracked dev-branch tracked Local branch configured for 'git pull': master merges with remote master Local ref configured for 'git push': master pushes to master (up to date) Она выдаёт URL удалённого репозитория, а также информацию об отслеживаемых ветках. Эта команда любезно сообщает вам, что если вы, находясь на ветке master, выполните git pull, ветка master с удалённого сервера будет автоматически влита в вашу сразу после получения всех необходимых данных. Она также выдаёт список всех полученных ею ссылок. Можно увидеть гораздо большее количество информации, если ввести команду git remote show:

$ git remote show origin

  • remote origin URL: https://github.com/my-org/complex-project Fetch URL: https://github.com/my-org/complex-project Push URL: https://github.com/my-org/complex-project HEAD branch: master Remote branches: master tracked dev-branch tracked markdown-strip tracked issue-43 new (next fetch will store in remotes/origin) issue-45 new (next fetch will store in remotes/origin) refs/remotes/origin/issue-11 stale (use 'git remote prune' to remove) Local branches configured for 'git pull': dev-branch merges with remote dev-branch master merges with remote master Local refs configured for 'git push': dev-branch pushes to dev-branch (up to date) markdown-strip pushes to markdown-strip (up to date) master pushes to master (up to date)

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

Удаление и переименование удаленных репозиториев

Для переименования удалённого репозитория можно выполнить git remote rename. Например, если вы хотите переименовать прол в paul:

$ git remote rename прол paul $ git remote origin paul Такая операция также изменит имена удалённых веток в вашем репозитории. То, к чему вы обращались как прол/master, теперь стало paul/master.

Если по какой-то причине вы хотите удалить удаленный - можете использовать git remote remove:

$ git remote remove paul $ git remote origin При удалении ссылки на удалённый репозиторий все отслеживаемые ветки и настройки, связанные с этим репозиторием, так же будут удалены.

seminar-23-12-2022's People

Contributors

oleggolen avatar anger111 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.