From 8003f1cfbd8eeb30f16846c80d802cf4f69b0cb5 Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sat, 15 Jul 2023 10:58:58 +0300 Subject: [PATCH 01/14] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=84=D0=B0=D0=B9=D0=BB=20list1.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 list1.md diff --git a/list1.md b/list1.md new file mode 100644 index 0000000..e69de29 From 65893399f24c5b69bead4ea4d7a93a3bf2d41cc9 Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sat, 15 Jul 2023 11:01:13 +0300 Subject: [PATCH 02/14] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B5=D0=BA=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/list1.md b/list1.md index e69de29..b8cbfd8 100644 --- a/list1.md +++ b/list1.md @@ -0,0 +1,8 @@ +# Инструкция для работы с Git и удалёнными репозиториями + +## Что такое Git? +![Это логотип Git](Git.png) +Git - это одна из реализаций распределённых систем контроля версий, имеющая как и локальные, так и удалённые репозитории. Является самой популярной реализацией систем контроля версий в мире. + +## Подготовка репозитория +Для создание репозитория необходимо выполнить команду *git init* в папке с репозиторием. У Вас создаться репозиторий (появится скрытая папка .git) \ No newline at end of file From bf773d353042f78211360400a432dca9eff2e671 Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sat, 15 Jul 2023 11:32:47 +0300 Subject: [PATCH 03/14] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B5=D0=BA=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/list1.md b/list1.md index b8cbfd8..2976866 100644 --- a/list1.md +++ b/list1.md @@ -5,4 +5,10 @@ Git - это одна из реализаций распределённых систем контроля версий, имеющая как и локальные, так и удалённые репозитории. Является самой популярной реализацией систем контроля версий в мире. ## Подготовка репозитория -Для создание репозитория необходимо выполнить команду *git init* в папке с репозиторием. У Вас создаться репозиторий (появится скрытая папка .git) \ No newline at end of file +Для создание репозитория необходимо выполнить команду *git init* в папке с репозиторием. У Вас создаться репозиторий (появится скрытая папка .git) + +# Для того чтобы добавить все изменения с локального репозитория на сервер _git.hub_ необходимо использовать комманду **git push** + +# Для того чтобы вытянуть изменения с сервера _git.hub_ на локальный репозиторий необходимо использовать комманду **git pull** + +# Чтобы изменить коментарий последнего коммита используй комманду git commit --ammend \ No newline at end of file From 0bdfd7fddb4f9b2112ca05e8a43803f97f942017 Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sat, 15 Jul 2023 13:37:11 +0300 Subject: [PATCH 04/14] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D0=B8=D1=82=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 140 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 126 insertions(+), 14 deletions(-) diff --git a/list1.md b/list1.md index 2976866..d957535 100644 --- a/list1.md +++ b/list1.md @@ -1,14 +1,126 @@ -# Инструкция для работы с Git и удалёнными репозиториями - -## Что такое Git? -![Это логотип Git](Git.png) -Git - это одна из реализаций распределённых систем контроля версий, имеющая как и локальные, так и удалённые репозитории. Является самой популярной реализацией систем контроля версий в мире. - -## Подготовка репозитория -Для создание репозитория необходимо выполнить команду *git init* в папке с репозиторием. У Вас создаться репозиторий (появится скрытая папка .git) - -# Для того чтобы добавить все изменения с локального репозитория на сервер _git.hub_ необходимо использовать комманду **git push** - -# Для того чтобы вытянуть изменения с сервера _git.hub_ на локальный репозиторий необходимо использовать комманду **git pull** - -# Чтобы изменить коментарий последнего коммита используй комманду git commit --ammend \ No newline at end of file +# Инструкция по работе с git +## Подготовка +1. **Регистрация на GitHub**. *GitHub* -­ это сервис для хранения репозиториев. Репозиторий научного проекта будет находиться именно там,поэтому если у вас еще нет аккаунта на GitHub, вам необходимо пройти стандартную процедуру регистрации. +2. **Установить git** с официального сайта по инструкции: https://git-scm.com. Возможно, он уже есть у вас в системе — проверьте это, зайдя в командную строку и введя команду __*git*__. +3. Все команды git выполняются в терминале(командной строке). Пользователям Windows следует использовать утилиту __*Git Bash*__ либо скачать и распаковать дистрибутив *Babun* https://babun.github.io (осторожно, она весит 2Гб — зато полностью эмулирует работу в командной +строке Linux). +4. Настройка git. Нам будет достаточно только задать имя и email командами: + git config ­­global user.name "Oleg Yasnev" + git config ­­global user.email oyasnev@gmail.com +(вы, естественно, подставляете свои имя и email) +Далее мы изучим основные операции на тестовом репозитории. Для начала нам +понадобится завести репозиторий на GitHub. Я буду использо вать свой аккаунт (oyasnev), +соответственно, вам нужно будет подставлять свой. +Создание репозитория на GitHub +Для создания репозитория на GitHub нужно войти в систему, за тем в навигационной +панели сверху рядом с вашим именем выбрать " +" и "New repository" (или на главной +странице зеленая кнопка "+ New repository"). Далее заполняем поля: +● Repository name: test +● Description: Test repository +● оставляем выбранным пункт " Public" и проставляем флажок "Initialize this repository +with a README" +Нажимаем кнопку " Create repository". Репозиторий создан! Теперь он доступен по адресу +https://github.com/oyasnev/test +Репозиторий, находящийся на GitHub, мы будем называть главным. При работе с +научными проектами главный репозиторий уже будет создан руководителями. +Базовые операции +1. Создание локальной копии главного репозитория . Для начала нужно перейти в +каталог, в котором вы хотите, чтобы появился каталог репози тория, и запустить в +нем терминал. Для пользователей Linux/MacOS: запустить Те рминал и с помощью +команды cd перейти в нужный каталог. Для пользователей Windows: перейти в +Проводнике в нужный каталог, щелкнуть правой кнопкой мыши в окне каталога и в +контекстном меню выбрать пункт "Git Bash". +После запуска в терминале набрать команду + git clone https://github.com/oyasnev/test +В результате в текущем каталоге будет создан подкаталог test, содержащий +копию главного репозитория. Для работы с репозиторием необ ходимо перейти в его +каталог командой cd test. +2. Добавление новых файлов в репозиторий . Давайте создадим в каталоге +репозитория test текстовый файлfirst.txt, содержащий строку текста "Some +text". Однако то, что файл появился в каталоге репозитория не озн ачает, что git его +уже отслеживает ­ нужно указать это явно командой + git add first.txt +Теперь наш файл находится под наблюдением git. Давайте сохр аним изменения в +репозитории и сделаем первый коммит: + git commit ­m "My first commit" +Ключ ­m позволяет задать описание коммита. Описание обязательно, иначе +коммит не будет выполнен. +Теперь давайте создадим каталог dir, а в нем два текстовых файлаa.txt и +b.txt. Чтобы при добавлении в git не перечислять их по отдельности , +воспользуемся командой + git add . +которая добавляет в git все новые файлы. И снова сохраним: + git commit ­m "dir added" +3. Сохранение изменений файлов . Добавим в файл first.txt еще одну строчку +"Some more text " (не забудьте сохранить файл!). И снова закоммитим изменен ия. +Однако если мы воспользуемся известной нам командой + git commit ­m "more text added to first.txt" +то мы получим сообщение, что коммитить в общем­то нечего. По чему? Дело в том, +что git опять же не знает, какие именно из измененных файлов м ы хотим сохранить. +Чтобы указать это явно, необходимо воспользоваться описан ной выше командой +git add. В то же время самый частый сценарий ­ сохранить изменения во всех +файлах. Для этих целей в команде git commit есть ключик ­a. +Итого наша команда будет такой: + git commit ­a ­m "more text added to first.txt" +Чтобы меньше запоминать, вам будет достаточно для всех комм итов пользоваться +командой именно такого вида. +Однако помните, что ключ ­a позволяет учесть изменения только в файлах, уже +находящихся под наблюдением git. А новые файлы перед коммит ом необходимо +предварительно явно добавить командой git add (про нее вам рассказали не +просто так). +4. Отправка изменений в главный репозиторий . К этому моменту мы уже немало +сделали в нашей локальной копии репозитория, однако если вы обновите +веб­страничку с главным репозиторием, вы увидите, что в нем никаких изменений +нет. Как их туда внести? Для этого используется команда + git push +В процессе выполнения команды от вас потребуется ввести ваш и логин и пароль +от аккаунта на GitHub. Когда после успешного завершения ком анды мы обновим +страничку с главным репозиторием, мы увидим, что теперь его содержимое +совпадает с нашим локальным репозиторием. +5. Получение изменений из главного репозитория . Смоделируем ситуацию, в +которой нам это пригодится. Для этого откроем еще один терми нал в каталоге, +отличном от того, в котором лежит наш локальный репозиторий . И создадим еще +одну локальную копию главного репозитория (как ­ описано вы ше). Итого у нас +теперь есть два локальных репозитория: первый (старый) и вт орой (только что +созданный). Представим, что второй репозиторий на самом де ле находится на +другом компьютере и с ним работает второй участник. И он реша ет внести какие­то +изменения в файл first.txt (например, добавим туда еще одну строчку текста), +находящийся в его локальной копии, т.е. во втором репозитор ии. Сохраняем файл +и коммитим: + git commit ­a ­m "more changes in first.txt" +и отправляем изменения на сервер: + git push +Сейчас у нас синхронизированы главный и второй локальный ре позитории, но +первый локальный отстает. Ему нужно получить изменения из г лавного +репозитория командой + git pull +Ура, теперь у нас везде одинаковые версии. +6. Разрешение конфликтов. В заключение рассмотрим еще один частый сценарий, +распространенный при одновременной работе нескольких чел овек. Давайте в +нашем первом локальном репозитории внесем еще какие­нибуд ь изменения в файл +first.txt, закоммитим и отправим их в главный репозиторий. А затем во в тором +локальном репозитории создадим файл second.txt и тоже закоммитим. Однако +если теперь из второго репозитория мы попробуем сделать git push, то получим +ошибку из­за конфликта изменений. Почему? Для простоты мож но считать, что при +отправке изменений в локальном репозитории должна быть вер сия, основанная на +версии главного репозитория. Тогда как мы во втором репозит ории пока ничего не +знаем про последний коммит first.txt. Что делать? Сначала нам нужно +получить изменения из главного репозитория, затем объедин ить их с нашими +изменениями, и то, что получилось, отправить на главный реп озиторий. Звучит +непросто, но на самом деле первые два шага сама умеет делать к омандаgit +pull. Она достаточно умна, чтобы понять, что в нашем случае надо о бновить +файл first.txt и добавитьsecond.txt. После чего нам остается просто +отправить изменения командой git push. +Итого получаем, что при отправке изменений безопасно польз оваться двумя +последовательными командами: +git pull (проверить на наличие новых изменений в репозитории и, если +они есть, выкачать их и объединить с локальными изменениями) + git push (отправить изменения в репозиторий) +Таким образом, git умеет разрешать конфликты самостоятель но. Но к сожалению +не все. Если бы мы вместо создания second.txt во втором репозитории тоже +изменили first.txt, то мы бы имели две измененные версии одного файла и +здесь уже git самостоятельно разрешить конфликт не может: н ужно вмешательство +человека. При грамотно спланированной работе команды, так ие ситуации +встречаются редко, и мы их рассматривать не будем. Интересу ющиеся могут +посмотреть в интернете или в справке git по команде merge в разделе "How to +resolve conflicts". \ No newline at end of file From 96283152a44f0a3dff855763fb13cce3c3fb7f09 Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sat, 15 Jul 2023 13:41:31 +0300 Subject: [PATCH 05/14] =?UTF-8?q?=D0=97=D0=B0=D0=B2=D0=B5=D1=80=D1=88?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BF.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/list1.md b/list1.md index d957535..7cf8274 100644 --- a/list1.md +++ b/list1.md @@ -2,9 +2,8 @@ ## Подготовка 1. **Регистрация на GitHub**. *GitHub* -­ это сервис для хранения репозиториев. Репозиторий научного проекта будет находиться именно там,поэтому если у вас еще нет аккаунта на GitHub, вам необходимо пройти стандартную процедуру регистрации. 2. **Установить git** с официального сайта по инструкции: https://git-scm.com. Возможно, он уже есть у вас в системе — проверьте это, зайдя в командную строку и введя команду __*git*__. -3. Все команды git выполняются в терминале(командной строке). Пользователям Windows следует использовать утилиту __*Git Bash*__ либо скачать и распаковать дистрибутив *Babun* https://babun.github.io (осторожно, она весит 2Гб — зато полностью эмулирует работу в командной -строке Linux). -4. Настройка git. Нам будет достаточно только задать имя и email командами: +3. Все команды git выполняются в терминале(командной строке). Пользователям Windows следует использовать утилиту __*Git Bash*__ либо скачать и распаковать дистрибутив *Babun* https://babun.github.io _**(осторожно, она весит 2Гб, зато полностью эмулирует работу в командной строке Linux)**_. +4. Настройка git. Достаточно задать имя и email командами: git config ­­global user.name "Oleg Yasnev" git config ­­global user.email oyasnev@gmail.com (вы, естественно, подставляете свои имя и email) From 47986f3fd9a332fb028a5943db461d032ba54685 Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sat, 15 Jul 2023 22:19:56 +0300 Subject: [PATCH 06/14] =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=82=D0=BA=D1=83=20list=20=D0=B8=20=D0=B2=D0=BD?= =?UTF-8?q?=D0=B5=D1=81=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B2=20=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=201=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/list1.md b/list1.md index 7cf8274..575f4e4 100644 --- a/list1.md +++ b/list1.md @@ -1,4 +1,4 @@ -# Инструкция по работе с git +# Глава по работе с git ## Подготовка 1. **Регистрация на GitHub**. *GitHub* -­ это сервис для хранения репозиториев. Репозиторий научного проекта будет находиться именно там,поэтому если у вас еще нет аккаунта на GitHub, вам необходимо пройти стандартную процедуру регистрации. 2. **Установить git** с официального сайта по инструкции: https://git-scm.com. Возможно, он уже есть у вас в системе — проверьте это, зайдя в командную строку и введя команду __*git*__. From 10f0d599ee62635ff48b3e77315c964a2a47b81f Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sat, 15 Jul 2023 22:23:54 +0300 Subject: [PATCH 07/14] =?UTF-8?q?=20=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB?= =?UTF-8?q?=20=D0=B2=D0=B5=D1=82=D0=BA=D1=83=20resevd=20=D0=B2=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B2=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=BA=201=20=D0=B8=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/list1.md b/list1.md index 575f4e4..47b0eae 100644 --- a/list1.md +++ b/list1.md @@ -1,5 +1,5 @@ -# Глава по работе с git -## Подготовка +# Мануал по работе с git +## Начало 1. **Регистрация на GitHub**. *GitHub* -­ это сервис для хранения репозиториев. Репозиторий научного проекта будет находиться именно там,поэтому если у вас еще нет аккаунта на GitHub, вам необходимо пройти стандартную процедуру регистрации. 2. **Установить git** с официального сайта по инструкции: https://git-scm.com. Возможно, он уже есть у вас в системе — проверьте это, зайдя в командную строку и введя команду __*git*__. 3. Все команды git выполняются в терминале(командной строке). Пользователям Windows следует использовать утилиту __*Git Bash*__ либо скачать и распаковать дистрибутив *Babun* https://babun.github.io _**(осторожно, она весит 2Гб, зато полностью эмулирует работу в командной строке Linux)**_. From ebf8ee285b00536022e85a1d13bbbda0ec314655 Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sat, 15 Jul 2023 22:33:57 +0300 Subject: [PATCH 08/14] =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB=20Li?= =?UTF-8?q?st=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 124 +------------------------------------------------------ 1 file changed, 1 insertion(+), 123 deletions(-) diff --git a/list1.md b/list1.md index 47b0eae..506681a 100644 --- a/list1.md +++ b/list1.md @@ -1,125 +1,3 @@ -# Мануал по работе с git +# Инструкция по работе с git ## Начало 1. **Регистрация на GitHub**. *GitHub* -­ это сервис для хранения репозиториев. Репозиторий научного проекта будет находиться именно там,поэтому если у вас еще нет аккаунта на GitHub, вам необходимо пройти стандартную процедуру регистрации. -2. **Установить git** с официального сайта по инструкции: https://git-scm.com. Возможно, он уже есть у вас в системе — проверьте это, зайдя в командную строку и введя команду __*git*__. -3. Все команды git выполняются в терминале(командной строке). Пользователям Windows следует использовать утилиту __*Git Bash*__ либо скачать и распаковать дистрибутив *Babun* https://babun.github.io _**(осторожно, она весит 2Гб, зато полностью эмулирует работу в командной строке Linux)**_. -4. Настройка git. Достаточно задать имя и email командами: - git config ­­global user.name "Oleg Yasnev" - git config ­­global user.email oyasnev@gmail.com -(вы, естественно, подставляете свои имя и email) -Далее мы изучим основные операции на тестовом репозитории. Для начала нам -понадобится завести репозиторий на GitHub. Я буду использо вать свой аккаунт (oyasnev), -соответственно, вам нужно будет подставлять свой. -Создание репозитория на GitHub -Для создания репозитория на GitHub нужно войти в систему, за тем в навигационной -панели сверху рядом с вашим именем выбрать " +" и "New repository" (или на главной -странице зеленая кнопка "+ New repository"). Далее заполняем поля: -● Repository name: test -● Description: Test repository -● оставляем выбранным пункт " Public" и проставляем флажок "Initialize this repository -with a README" -Нажимаем кнопку " Create repository". Репозиторий создан! Теперь он доступен по адресу -https://github.com/oyasnev/test -Репозиторий, находящийся на GitHub, мы будем называть главным. При работе с -научными проектами главный репозиторий уже будет создан руководителями. -Базовые операции -1. Создание локальной копии главного репозитория . Для начала нужно перейти в -каталог, в котором вы хотите, чтобы появился каталог репози тория, и запустить в -нем терминал. Для пользователей Linux/MacOS: запустить Те рминал и с помощью -команды cd перейти в нужный каталог. Для пользователей Windows: перейти в -Проводнике в нужный каталог, щелкнуть правой кнопкой мыши в окне каталога и в -контекстном меню выбрать пункт "Git Bash". -После запуска в терминале набрать команду - git clone https://github.com/oyasnev/test -В результате в текущем каталоге будет создан подкаталог test, содержащий -копию главного репозитория. Для работы с репозиторием необ ходимо перейти в его -каталог командой cd test. -2. Добавление новых файлов в репозиторий . Давайте создадим в каталоге -репозитория test текстовый файлfirst.txt, содержащий строку текста "Some -text". Однако то, что файл появился в каталоге репозитория не озн ачает, что git его -уже отслеживает ­ нужно указать это явно командой - git add first.txt -Теперь наш файл находится под наблюдением git. Давайте сохр аним изменения в -репозитории и сделаем первый коммит: - git commit ­m "My first commit" -Ключ ­m позволяет задать описание коммита. Описание обязательно, иначе -коммит не будет выполнен. -Теперь давайте создадим каталог dir, а в нем два текстовых файлаa.txt и -b.txt. Чтобы при добавлении в git не перечислять их по отдельности , -воспользуемся командой - git add . -которая добавляет в git все новые файлы. И снова сохраним: - git commit ­m "dir added" -3. Сохранение изменений файлов . Добавим в файл first.txt еще одну строчку -"Some more text " (не забудьте сохранить файл!). И снова закоммитим изменен ия. -Однако если мы воспользуемся известной нам командой - git commit ­m "more text added to first.txt" -то мы получим сообщение, что коммитить в общем­то нечего. По чему? Дело в том, -что git опять же не знает, какие именно из измененных файлов м ы хотим сохранить. -Чтобы указать это явно, необходимо воспользоваться описан ной выше командой -git add. В то же время самый частый сценарий ­ сохранить изменения во всех -файлах. Для этих целей в команде git commit есть ключик ­a. -Итого наша команда будет такой: - git commit ­a ­m "more text added to first.txt" -Чтобы меньше запоминать, вам будет достаточно для всех комм итов пользоваться -командой именно такого вида. -Однако помните, что ключ ­a позволяет учесть изменения только в файлах, уже -находящихся под наблюдением git. А новые файлы перед коммит ом необходимо -предварительно явно добавить командой git add (про нее вам рассказали не -просто так). -4. Отправка изменений в главный репозиторий . К этому моменту мы уже немало -сделали в нашей локальной копии репозитория, однако если вы обновите -веб­страничку с главным репозиторием, вы увидите, что в нем никаких изменений -нет. Как их туда внести? Для этого используется команда - git push -В процессе выполнения команды от вас потребуется ввести ваш и логин и пароль -от аккаунта на GitHub. Когда после успешного завершения ком анды мы обновим -страничку с главным репозиторием, мы увидим, что теперь его содержимое -совпадает с нашим локальным репозиторием. -5. Получение изменений из главного репозитория . Смоделируем ситуацию, в -которой нам это пригодится. Для этого откроем еще один терми нал в каталоге, -отличном от того, в котором лежит наш локальный репозиторий . И создадим еще -одну локальную копию главного репозитория (как ­ описано вы ше). Итого у нас -теперь есть два локальных репозитория: первый (старый) и вт орой (только что -созданный). Представим, что второй репозиторий на самом де ле находится на -другом компьютере и с ним работает второй участник. И он реша ет внести какие­то -изменения в файл first.txt (например, добавим туда еще одну строчку текста), -находящийся в его локальной копии, т.е. во втором репозитор ии. Сохраняем файл -и коммитим: - git commit ­a ­m "more changes in first.txt" -и отправляем изменения на сервер: - git push -Сейчас у нас синхронизированы главный и второй локальный ре позитории, но -первый локальный отстает. Ему нужно получить изменения из г лавного -репозитория командой - git pull -Ура, теперь у нас везде одинаковые версии. -6. Разрешение конфликтов. В заключение рассмотрим еще один частый сценарий, -распространенный при одновременной работе нескольких чел овек. Давайте в -нашем первом локальном репозитории внесем еще какие­нибуд ь изменения в файл -first.txt, закоммитим и отправим их в главный репозиторий. А затем во в тором -локальном репозитории создадим файл second.txt и тоже закоммитим. Однако -если теперь из второго репозитория мы попробуем сделать git push, то получим -ошибку из­за конфликта изменений. Почему? Для простоты мож но считать, что при -отправке изменений в локальном репозитории должна быть вер сия, основанная на -версии главного репозитория. Тогда как мы во втором репозит ории пока ничего не -знаем про последний коммит first.txt. Что делать? Сначала нам нужно -получить изменения из главного репозитория, затем объедин ить их с нашими -изменениями, и то, что получилось, отправить на главный реп озиторий. Звучит -непросто, но на самом деле первые два шага сама умеет делать к омандаgit -pull. Она достаточно умна, чтобы понять, что в нашем случае надо о бновить -файл first.txt и добавитьsecond.txt. После чего нам остается просто -отправить изменения командой git push. -Итого получаем, что при отправке изменений безопасно польз оваться двумя -последовательными командами: -git pull (проверить на наличие новых изменений в репозитории и, если -они есть, выкачать их и объединить с локальными изменениями) - git push (отправить изменения в репозиторий) -Таким образом, git умеет разрешать конфликты самостоятель но. Но к сожалению -не все. Если бы мы вместо создания second.txt во втором репозитории тоже -изменили first.txt, то мы бы имели две измененные версии одного файла и -здесь уже git самостоятельно разрешить конфликт не может: н ужно вмешательство -человека. При грамотно спланированной работе команды, так ие ситуации -встречаются редко, и мы их рассматривать не будем. Интересу ющиеся могут -посмотреть в интернете или в справке git по команде merge в разделе "How to -resolve conflicts". \ No newline at end of file From 52119f92a1a12e3929b0b63f12a17d4765de799b Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sat, 15 Jul 2023 22:42:32 +0300 Subject: [PATCH 09/14] =?UTF-8?q?=D0=92=D0=BD=D0=B5=D1=81=20=D0=B0=D0=B1?= =?UTF-8?q?=D1=80=D0=BE=D0=BA=D0=B0=D0=B4=D0=B0=D0=B1=D1=80=D1=83=20=D0=B2?= =?UTF-8?q?=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=20=D0=B4=D0=BB=D1=8F=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D1=84=D0=BB=D0=B8=D0=BA=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/list1.md b/list1.md index 506681a..5b54b6e 100644 --- a/list1.md +++ b/list1.md @@ -1,3 +1,3 @@ -# Инструкция по работе с git -## Начало -1. **Регистрация на GitHub**. *GitHub* -­ это сервис для хранения репозиториев. Репозиторий научного проекта будет находиться именно там,поэтому если у вас еще нет аккаунта на GitHub, вам необходимо пройти стандартную процедуру регистрации. +# И123123213123131 +## 12323123123213 +1. **Региeeewr234r3r2qfafsdfas From 6473219ca274e8ae27b74f820fb67dc5d0bbe9ce Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sun, 16 Jul 2023 07:37:29 +0300 Subject: [PATCH 10/14] =?UTF-8?q?=D0=A1=D0=BE=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/list1.md b/list1.md index 5b54b6e..daee7fc 100644 --- a/list1.md +++ b/list1.md @@ -1,3 +1,3 @@ # И123123213123131 ## 12323123123213 -1. **Региeeewr234r3r2qfafsdfas +1. **Региeeewr234r3r2qfafsdfas \ No newline at end of file From 3d2a706784a97e6af76a3f0f16a160195c350bcf Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sun, 16 Jul 2023 07:44:04 +0300 Subject: [PATCH 11/14] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B0=D0=B1=D1=80=D0=BE=D0=BA=D0=B0=D0=B4=D0=B0=D0=B1=D1=80?= =?UTF-8?q?=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/list1.md b/list1.md index daee7fc..e69de29 100644 --- a/list1.md +++ b/list1.md @@ -1,3 +0,0 @@ -# И123123213123131 -## 12323123123213 -1. **Региeeewr234r3r2qfafsdfas \ No newline at end of file From 749efce1a6567781f32b2e11844a06d7fb070811 Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sun, 16 Jul 2023 08:08:34 +0300 Subject: [PATCH 12/14] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=20=D0=B8=20=D1=81=D0=BE?= =?UTF-8?q?=D0=B7=D0=B4=D0=B0=D0=BB=20=D0=B2=D0=B5=D1=82=D0=BA=D1=83=20lis?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) diff --git a/list1.md b/list1.md index e69de29..70b66a5 100644 --- a/list1.md +++ b/list1.md @@ -0,0 +1,133 @@ +# Инструкция для работы с Git и удалёнными репозиториями + +## Что такое Git? +Git - это одна из реализаций распределённых систем контроля версий, имеющая как и локальные, так и удалённые репозитории. Является самой популярной реализацией систем контроля версий в мире. + +## Подготовка репозитория +Для создание репозитория необходимо выполнить команду *git init* в папке с репозиторием. У Вас создаться репозиторий (появится скрытая папка .git) + +# Мануал по работе с git +## Начало +1. **Регистрация на GitHub**. *GitHub* -­ это сервис для хранения репозиториев. Репозиторий научного проекта будет находиться именно там,поэтому если у вас еще нет аккаунта на GitHub, вам необходимо пройти стандартную процедуру регистрации. +2. **Установить git** с официального сайта по инструкции: https://git-scm.com. Возможно, он уже есть у вас в системе — проверьте это, зайдя в командную строку и введя команду __*git*__. +3. Все команды git выполняются в терминале(командной строке). Пользователям Windows следует использовать утилиту __*Git Bash*__ либо скачать и распаковать дистрибутив *Babun* https://babun.github.io _**(осторожно, она весит 2Гб, зато полностью эмулирует работу в командной строке Linux)**_. +4. Настройка git. Достаточно задать имя и email командами: + git config ­­global user.name "Oleg Yasnev" + git config ­­global user.email oyasnev@gmail.com +(вы, естественно, подставляете свои имя и email) +Далее мы изучим основные операции на тестовом репозитории. Для начала нам +понадобится завести репозиторий на GitHub. Я буду использо вать свой аккаунт (oyasnev), +соответственно, вам нужно будет подставлять свой. +Создание репозитория на GitHub +Для создания репозитория на GitHub нужно войти в систему, за тем в навигационной +панели сверху рядом с вашим именем выбрать " +" и "New repository" (или на главной +странице зеленая кнопка "+ New repository"). Далее заполняем поля: +● Repository name: test +● Description: Test repository +● оставляем выбранным пункт " Public" и проставляем флажок "Initialize this repository +with a README" +Нажимаем кнопку " Create repository". Репозиторий создан! Теперь он доступен по адресу +https://github.com/oyasnev/test +Репозиторий, находящийся на GitHub, мы будем называть главным. При работе с +научными проектами главный репозиторий уже будет создан руководителями. +Базовые операции +1. Создание локальной копии главного репозитория . Для начала нужно перейти в +каталог, в котором вы хотите, чтобы появился каталог репози тория, и запустить в +нем терминал. Для пользователей Linux/MacOS: запустить Те рминал и с помощью +команды cd перейти в нужный каталог. Для пользователей Windows: перейти в +Проводнике в нужный каталог, щелкнуть правой кнопкой мыши в окне каталога и в +контекстном меню выбрать пункт "Git Bash". +После запуска в терминале набрать команду + git clone https://github.com/oyasnev/test +В результате в текущем каталоге будет создан подкаталог test, содержащий +копию главного репозитория. Для работы с репозиторием необ ходимо перейти в его +каталог командой cd test. +2. Добавление новых файлов в репозиторий . Давайте создадим в каталоге +репозитория test текстовый файлfirst.txt, содержащий строку текста "Some +text". Однако то, что файл появился в каталоге репозитория не озн ачает, что git его +уже отслеживает ­ нужно указать это явно командой + git add first.txt +Теперь наш файл находится под наблюдением git. Давайте сохр аним изменения в +репозитории и сделаем первый коммит: + git commit ­m "My first commit" +Ключ ­m позволяет задать описание коммита. Описание обязательно, иначе +коммит не будет выполнен. +Теперь давайте создадим каталог dir, а в нем два текстовых файлаa.txt и +b.txt. Чтобы при добавлении в git не перечислять их по отдельности , +воспользуемся командой + git add . +которая добавляет в git все новые файлы. И снова сохраним: + git commit ­m "dir added" +3. Сохранение изменений файлов . Добавим в файл first.txt еще одну строчку +"Some more text " (не забудьте сохранить файл!). И снова закоммитим изменен ия. +Однако если мы воспользуемся известной нам командой + git commit ­m "more text added to first.txt" +то мы получим сообщение, что коммитить в общем­то нечего. По чему? Дело в том, +что git опять же не знает, какие именно из измененных файлов м ы хотим сохранить. +Чтобы указать это явно, необходимо воспользоваться описан ной выше командой +git add. В то же время самый частый сценарий ­ сохранить изменения во всех +файлах. Для этих целей в команде git commit есть ключик ­a. +Итого наша команда будет такой: + git commit ­a ­m "more text added to first.txt" +Чтобы меньше запоминать, вам будет достаточно для всех комм итов пользоваться +командой именно такого вида. +Однако помните, что ключ ­a позволяет учесть изменения только в файлах, уже +находящихся под наблюдением git. А новые файлы перед коммит ом необходимо +предварительно явно добавить командой git add (про нее вам рассказали не +просто так). +4. Отправка изменений в главный репозиторий . К этому моменту мы уже немало +сделали в нашей локальной копии репозитория, однако если вы обновите +веб­страничку с главным репозиторием, вы увидите, что в нем никаких изменений +нет. Как их туда внести? Для этого используется команда + git push +В процессе выполнения команды от вас потребуется ввести ваш и логин и пароль +от аккаунта на GitHub. Когда после успешного завершения ком анды мы обновим +страничку с главным репозиторием, мы увидим, что теперь его содержимое +совпадает с нашим локальным репозиторием. +5. Получение изменений из главного репозитория . Смоделируем ситуацию, в +которой нам это пригодится. Для этого откроем еще один терми нал в каталоге, +отличном от того, в котором лежит наш локальный репозиторий . И создадим еще +одну локальную копию главного репозитория (как ­ описано вы ше). Итого у нас +теперь есть два локальных репозитория: первый (старый) и вт орой (только что +созданный). Представим, что второй репозиторий на самом де ле находится на +другом компьютере и с ним работает второй участник. И он реша ет внести какие­то +изменения в файл first.txt (например, добавим туда еще одну строчку текста), +находящийся в его локальной копии, т.е. во втором репозитор ии. Сохраняем файл +и коммитим: + git commit ­a ­m "more changes in first.txt" +и отправляем изменения на сервер: + git push +Сейчас у нас синхронизированы главный и второй локальный ре позитории, но +первый локальный отстает. Ему нужно получить изменения из г лавного +репозитория командой + git pull +Ура, теперь у нас везде одинаковые версии. +6. Разрешение конфликтов. В заключение рассмотрим еще один частый сценарий, +распространенный при одновременной работе нескольких чел овек. Давайте в +нашем первом локальном репозитории внесем еще какие­нибуд ь изменения в файл +first.txt, закоммитим и отправим их в главный репозиторий. А затем во в тором +локальном репозитории создадим файл second.txt и тоже закоммитим. Однако +если теперь из второго репозитория мы попробуем сделать git push, то получим +ошибку из­за конфликта изменений. Почему? Для простоты мож но считать, что при +отправке изменений в локальном репозитории должна быть вер сия, основанная на +версии главного репозитория. Тогда как мы во втором репозит ории пока ничего не +знаем про последний коммит first.txt. Что делать? Сначала нам нужно +получить изменения из главного репозитория, затем объедин ить их с нашими +изменениями, и то, что получилось, отправить на главный реп озиторий. Звучит +непросто, но на самом деле первые два шага сама умеет делать к омандаgit +pull. Она достаточно умна, чтобы понять, что в нашем случае надо о бновить +файл first.txt и добавитьsecond.txt. После чего нам остается просто +отправить изменения командой git push. +Итого получаем, что при отправке изменений безопасно польз оваться двумя +последовательными командами: +git pull (проверить на наличие новых изменений в репозитории и, если +они есть, выкачать их и объединить с локальными изменениями) + git push (отправить изменения в репозиторий) +Таким образом, git умеет разрешать конфликты самостоятель но. Но к сожалению +не все. Если бы мы вместо создания second.txt во втором репозитории тоже +изменили first.txt, то мы бы имели две измененные версии одного файла и +здесь уже git самостоятельно разрешить конфликт не может: н ужно вмешательство +человека. При грамотно спланированной работе команды, так ие ситуации +встречаются редко, и мы их рассматривать не будем. Интересу ющиеся могут +посмотреть в интернете или в справке git по команде merge в разделе "How to +resolve conflicts". \ No newline at end of file From 261f6f426ac008a77904d863ef5bf1a90dcca94d Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sun, 16 Jul 2023 08:35:12 +0300 Subject: [PATCH 13/14] =?UTF-8?q?=D0=9E=D1=82=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D0=B0=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/list1.md b/list1.md index e69de29..8ed58ee 100644 --- a/list1.md +++ b/list1.md @@ -0,0 +1,48 @@ +# Инструкция для работы с Git и удалёнными репозиториями + +## Начало +1. **Регистрация на GitHub**. *GitHub* -­ это сервис для хранения репозиториев. Репозиторий научного проекта будет находиться именно там,поэтому если у вас еще нет аккаунта на GitHub, вам необходимо пройти стандартную процедуру регистрации. +2. **Установить git** с официального сайта по инструкции: https://git-scm.com. Возможно, он уже есть у вас в системе — проверьте это, зайдя в командную строку и введя команду __*git*__. +3. Все команды git выполняются в терминале(командной строке). Пользователям Windows следует использовать утилиту __*Git Bash*__ либо скачать и распаковать дистрибутив *Babun* https://babun.github.io _**(осторожно, она весит 2Гб, зато полностью эмулирует работу в командной строке Linux)**_. +4. Настройка git. Достаточно задать имя и email командами: + git config ­­global user.name "Oleg Yasnev" + git config ­­global user.email oyasnev@gmail.com +(вы, естественно, подставляете свои имя и email) + +Далее мы изучим основные операции на тестовом репозитории. Для начала нам понадобится завести репозиторий на GitHub. Я буду использовать свой аккаунт (oyasnev),соответственно, вам нужно будет подставлять свой. + +## Создание репозитория на GitHub +Для создания репозитория на GitHub нужно войти в систему, затем в навигационной панели сверху рядом с вашим именем выбрать "+" и "New repository" (или на главной странице зеленая кнопка "+ New repository"). Далее заполняем поля: +● Repository name: test +● Description: Test repository +● оставляем выбранным пункт "Public" и проставляем флажок "Initialize this repository with a README" +Нажимаем кнопку "Create repository". Репозиторий создан! Теперь он доступен по адресу: https://github.com/oyasnev/test + +Репозиторий, находящийся на GitHub, мы будем называть главным. При работе с научными проектами главный репозиторий уже будет создан руководителями. + +## Базовые операции +1. Создание локальной копии главного репозитория. Для начала нужно перейти в каталог, в котором вы хотите, чтобы появился каталог репозитория, и запустить в нем терминал. Для пользователей Windows: перейти в ___Проводнике__ в нужный каталог, щелкнуть правой кнопкой мыши в окне каталога и в контекстном меню выбрать пункт "Git Bash". +После запуска в терминале набрать команду: git clone https://github.com/oyasnev/test. В результате в текущем каталоге будет создан подкаталог test, содержащий копию главного репозитория. Для работы с репозиторием необходимо перейти в его каталог командой cd test. +2. Добавление новых файлов в репозиторий. Давайте создадим в каталоге репозитория test текстовый файлfirst.txt, содержащий строку текста "Sometext". Однако то, что файл появился в каталоге репозитория не означает, что git его уже отслеживает ­ нужно указать это явно командой git add first.txt. Теперь наш файл находится под наблюдением git. +*Давайте сохраним изменения в репозитории* и сделаем первый коммит: git commit -­m "My first commit". Ключ -­m позволяет задать описание коммита. Описание обязательно, иначе коммит не будет выполнен. +Теперь давайте создадим каталог dir, а в нем два текстовых файлаa.txt и b.txt. Чтобы при добавлении в git не перечислять их по отдельности, воспользуемся командой __git add .__ которая добавляет в git все новые файлы. И снова сохраним: git commit -­m "dir added" +3. Сохранение изменений файлов. Добавим в файл first.txt еще одну строчку "Some more text" (не забудьте сохранить файл!). И снова закоммитим изменения. Однако если мы воспользуемся известной нам командой **git commit -­m "more text added to first.txt"** то мы получим сообщение, что коммитить в общем­то нечего. По чему? Дело в том, что git опять же не знает, какие именно из измененных файлов мы хотим сохранить. Чтобы указать это явно, необходимо воспользоваться описанной выше командой git add. В то же время самый частый сценарий ­ сохранить изменения во всех файлах. Для этих целей в команде git commit есть ключик **-­a**. +Итого наша команда будет такой: **git commit ­-a­m "more text added to first.txt"** +Чтобы меньше запоминать, вам будет достаточно для всех коммитов пользоваться командой именно такого вида. +Однако помните, что ключ **-­a** позволяет учесть изменения только в файлах, уже находящихся под наблюдением git. А новые файлы перед коммитом необходимо предварительно явно добавить командой **git add** (про нее вам рассказали непросто так). +4. Отправка изменений в главный репозиторий. К этому моменту мы уже немало сделали в нашей локальной копии репозитория, однако если вы обновите веб­страничку с главным репозиторием, вы увидите, что в нем никаких изменений нет. Как их туда внести? Для этого используется команда **git push** +В процессе выполнения команды от вас потребуется ввести ваш и логин и пароль от аккаунта на GitHub. Когда после успешного завершения команды мы обновим страничку с главным репозиторием, мы увидим, что теперь его содержимое совпадает с нашим локальным репозиторием. +5. Получение изменений из главного репозитория. Смоделируем ситуацию, в которой нам это пригодится. Для этого откроем еще один терминал в каталоге, отличном от того, в котором лежит наш локальный репозиторий. И создадим еще одну локальную копию главного репозитория (как ­ описано выше). +Итого у настеперь есть два локальных репозитория: первый (старый) и второй (только что созданный). Представим, что второй репозиторий на самом деле находится на другом компьютере и с ним работает второй участник. И он решает внести какие-­то изменения в файл first.txt (например, добавим туда еще одну строчку текста), находящийся в его локальной копии, т.е. во втором репозитории. +Сохраняем файли коммитим: **git commit ­a ­m "more changes in first.txt"** +и отправляем изменения на сервер: **git push** +Сейчас у нас синхронизированы главный и второй локальный репозитории, но первый локальный отстает. Ему нужно получить изменения из главного репозитория командой **git pull** +Ура, теперь у нас везде одинаковые версии. +6. Разрешение конфликтов. В заключение рассмотрим еще один частый сценарий, распространенный при одновременной работе нескольких человек. Давайте внашем первом локальном репозитории внесем еще какие-­нибудь изменения в файл first.txt, закоммитим и отправим их в главный репозиторий. А затем во втором локальном репозитории создадим файл second.txt и тоже закоммитим. Однако если теперь из второго репозитория мы попробуем сделать **git push**, то получим ошибку из­за конфликта изменений. Почему? Для простоты можно считать, что при +отправке изменений в локальном репозитории должна быть версия, основанная на версии главного репозитория. Тогда как мы во втором репозитории пока ничего не знаем про последний коммит first.txt. + +Что делать? Сначала нам нужнополучить изменения из главного репозитория, затем объединить их с нашими изменениями, и то, что получилось, отправить на главный репозиторий. Звучит непросто, но на самом деле первые два шага сама умеет делать команда **_git pull_**. Она достаточно умна, чтобы понять, что в нашем случае надо обновить файл first.txt и добавить second.txt. После чего нам остается просто отправить изменения командой **git push**. + +Итого получаем, что при отправке изменений безопасно пользоваться двумя последовательными командами: **git pull** (проверить на наличие новых изменений в репозитории и, если они есть, выкачать их и объединить с локальными изменениями) **git push** (отправить изменения в репозиторий). + +Таким образом, git умеет разрешать конфликты самостоятельно. Но к сожалению не все. Если бы мы вместо создания second.txt во втором репозитории тоже изменили first.txt, то мы бы имели две измененные версии одного файла и здесь уже git самостоятельно разрешить конфликт не может: нужно вмешательство человека. При грамотно спланированной работе команды, такие ситуации встречаются редко, и мы их рассматривать не будем. Интересующиеся могут посмотреть в интернете или в справке git по команде merge в разделе "How to resolve conflicts". \ No newline at end of file From 6df734f133ca708c8228fe79bedf12e9cb0e0888 Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Sun, 16 Jul 2023 08:43:07 +0300 Subject: [PATCH 14/14] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D1=80=D0=B5=D1=88?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BA=D0=BE=D0=BD=D1=84=D0=BB=D0=B8=D0=BA=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list1.md | 131 +------------------------------------------------------ 1 file changed, 1 insertion(+), 130 deletions(-) diff --git a/list1.md b/list1.md index e2489af..8ed58ee 100644 --- a/list1.md +++ b/list1.md @@ -1,15 +1,5 @@ # Инструкция для работы с Git и удалёнными репозиториями -<<<<<<< HEAD -## Что такое Git? -Git - это одна из реализаций распределённых систем контроля версий, имеющая как и локальные, так и удалённые репозитории. Является самой популярной реализацией систем контроля версий в мире. - -## Подготовка репозитория -Для создание репозитория необходимо выполнить команду *git init* в папке с репозиторием. У Вас создаться репозиторий (появится скрытая папка .git) - -# Мануал по работе с git -======= ->>>>>>> list ## Начало 1. **Регистрация на GitHub**. *GitHub* -­ это сервис для хранения репозиториев. Репозиторий научного проекта будет находиться именно там,поэтому если у вас еще нет аккаунта на GitHub, вам необходимо пройти стандартную процедуру регистрации. 2. **Установить git** с официального сайта по инструкции: https://git-scm.com. Возможно, он уже есть у вас в системе — проверьте это, зайдя в командную строку и введя команду __*git*__. @@ -18,124 +8,6 @@ Git - это одна из реализаций распределённых с git config ­­global user.name "Oleg Yasnev" git config ­­global user.email oyasnev@gmail.com (вы, естественно, подставляете свои имя и email) -<<<<<<< HEAD -Далее мы изучим основные операции на тестовом репозитории. Для начала нам -понадобится завести репозиторий на GitHub. Я буду использо вать свой аккаунт (oyasnev), -соответственно, вам нужно будет подставлять свой. -Создание репозитория на GitHub -Для создания репозитория на GitHub нужно войти в систему, за тем в навигационной -панели сверху рядом с вашим именем выбрать " +" и "New repository" (или на главной -странице зеленая кнопка "+ New repository"). Далее заполняем поля: -● Repository name: test -● Description: Test repository -● оставляем выбранным пункт " Public" и проставляем флажок "Initialize this repository -with a README" -Нажимаем кнопку " Create repository". Репозиторий создан! Теперь он доступен по адресу -https://github.com/oyasnev/test -Репозиторий, находящийся на GitHub, мы будем называть главным. При работе с -научными проектами главный репозиторий уже будет создан руководителями. -Базовые операции -1. Создание локальной копии главного репозитория . Для начала нужно перейти в -каталог, в котором вы хотите, чтобы появился каталог репози тория, и запустить в -нем терминал. Для пользователей Linux/MacOS: запустить Те рминал и с помощью -команды cd перейти в нужный каталог. Для пользователей Windows: перейти в -Проводнике в нужный каталог, щелкнуть правой кнопкой мыши в окне каталога и в -контекстном меню выбрать пункт "Git Bash". -После запуска в терминале набрать команду - git clone https://github.com/oyasnev/test -В результате в текущем каталоге будет создан подкаталог test, содержащий -копию главного репозитория. Для работы с репозиторием необ ходимо перейти в его -каталог командой cd test. -2. Добавление новых файлов в репозиторий . Давайте создадим в каталоге -репозитория test текстовый файлfirst.txt, содержащий строку текста "Some -text". Однако то, что файл появился в каталоге репозитория не озн ачает, что git его -уже отслеживает ­ нужно указать это явно командой - git add first.txt -Теперь наш файл находится под наблюдением git. Давайте сохр аним изменения в -репозитории и сделаем первый коммит: - git commit ­m "My first commit" -Ключ ­m позволяет задать описание коммита. Описание обязательно, иначе -коммит не будет выполнен. -Теперь давайте создадим каталог dir, а в нем два текстовых файлаa.txt и -b.txt. Чтобы при добавлении в git не перечислять их по отдельности , -воспользуемся командой - git add . -которая добавляет в git все новые файлы. И снова сохраним: - git commit ­m "dir added" -3. Сохранение изменений файлов . Добавим в файл first.txt еще одну строчку -"Some more text " (не забудьте сохранить файл!). И снова закоммитим изменен ия. -Однако если мы воспользуемся известной нам командой - git commit ­m "more text added to first.txt" -то мы получим сообщение, что коммитить в общем­то нечего. По чему? Дело в том, -что git опять же не знает, какие именно из измененных файлов м ы хотим сохранить. -Чтобы указать это явно, необходимо воспользоваться описан ной выше командой -git add. В то же время самый частый сценарий ­ сохранить изменения во всех -файлах. Для этих целей в команде git commit есть ключик ­a. -Итого наша команда будет такой: - git commit ­a ­m "more text added to first.txt" -Чтобы меньше запоминать, вам будет достаточно для всех комм итов пользоваться -командой именно такого вида. -Однако помните, что ключ ­a позволяет учесть изменения только в файлах, уже -находящихся под наблюдением git. А новые файлы перед коммит ом необходимо -предварительно явно добавить командой git add (про нее вам рассказали не -просто так). -4. Отправка изменений в главный репозиторий . К этому моменту мы уже немало -сделали в нашей локальной копии репозитория, однако если вы обновите -веб­страничку с главным репозиторием, вы увидите, что в нем никаких изменений -нет. Как их туда внести? Для этого используется команда - git push -В процессе выполнения команды от вас потребуется ввести ваш и логин и пароль -от аккаунта на GitHub. Когда после успешного завершения ком анды мы обновим -страничку с главным репозиторием, мы увидим, что теперь его содержимое -совпадает с нашим локальным репозиторием. -5. Получение изменений из главного репозитория . Смоделируем ситуацию, в -которой нам это пригодится. Для этого откроем еще один терми нал в каталоге, -отличном от того, в котором лежит наш локальный репозиторий . И создадим еще -одну локальную копию главного репозитория (как ­ описано вы ше). Итого у нас -теперь есть два локальных репозитория: первый (старый) и вт орой (только что -созданный). Представим, что второй репозиторий на самом де ле находится на -другом компьютере и с ним работает второй участник. И он реша ет внести какие­то -изменения в файл first.txt (например, добавим туда еще одну строчку текста), -находящийся в его локальной копии, т.е. во втором репозитор ии. Сохраняем файл -и коммитим: - git commit ­a ­m "more changes in first.txt" -и отправляем изменения на сервер: - git push -Сейчас у нас синхронизированы главный и второй локальный ре позитории, но -первый локальный отстает. Ему нужно получить изменения из г лавного -репозитория командой - git pull -Ура, теперь у нас везде одинаковые версии. -6. Разрешение конфликтов. В заключение рассмотрим еще один частый сценарий, -распространенный при одновременной работе нескольких чел овек. Давайте в -нашем первом локальном репозитории внесем еще какие­нибуд ь изменения в файл -first.txt, закоммитим и отправим их в главный репозиторий. А затем во в тором -локальном репозитории создадим файл second.txt и тоже закоммитим. Однако -если теперь из второго репозитория мы попробуем сделать git push, то получим -ошибку из­за конфликта изменений. Почему? Для простоты мож но считать, что при -отправке изменений в локальном репозитории должна быть вер сия, основанная на -версии главного репозитория. Тогда как мы во втором репозит ории пока ничего не -знаем про последний коммит first.txt. Что делать? Сначала нам нужно -получить изменения из главного репозитория, затем объедин ить их с нашими -изменениями, и то, что получилось, отправить на главный реп озиторий. Звучит -непросто, но на самом деле первые два шага сама умеет делать к омандаgit -pull. Она достаточно умна, чтобы понять, что в нашем случае надо о бновить -файл first.txt и добавитьsecond.txt. После чего нам остается просто -отправить изменения командой git push. -Итого получаем, что при отправке изменений безопасно польз оваться двумя -последовательными командами: -git pull (проверить на наличие новых изменений в репозитории и, если -они есть, выкачать их и объединить с локальными изменениями) - git push (отправить изменения в репозиторий) -Таким образом, git умеет разрешать конфликты самостоятель но. Но к сожалению -не все. Если бы мы вместо создания second.txt во втором репозитории тоже -изменили first.txt, то мы бы имели две измененные версии одного файла и -здесь уже git самостоятельно разрешить конфликт не может: н ужно вмешательство -человека. При грамотно спланированной работе команды, так ие ситуации -встречаются редко, и мы их рассматривать не будем. Интересу ющиеся могут -посмотреть в интернете или в справке git по команде merge в разделе "How to -resolve conflicts". -======= Далее мы изучим основные операции на тестовом репозитории. Для начала нам понадобится завести репозиторий на GitHub. Я буду использовать свой аккаунт (oyasnev),соответственно, вам нужно будет подставлять свой. @@ -173,5 +45,4 @@ resolve conflicts". Итого получаем, что при отправке изменений безопасно пользоваться двумя последовательными командами: **git pull** (проверить на наличие новых изменений в репозитории и, если они есть, выкачать их и объединить с локальными изменениями) **git push** (отправить изменения в репозиторий). -Таким образом, git умеет разрешать конфликты самостоятельно. Но к сожалению не все. Если бы мы вместо создания second.txt во втором репозитории тоже изменили first.txt, то мы бы имели две измененные версии одного файла и здесь уже git самостоятельно разрешить конфликт не может: нужно вмешательство человека. При грамотно спланированной работе команды, такие ситуации встречаются редко, и мы их рассматривать не будем. Интересующиеся могут посмотреть в интернете или в справке git по команде merge в разделе "How to resolve conflicts". ->>>>>>> list +Таким образом, git умеет разрешать конфликты самостоятельно. Но к сожалению не все. Если бы мы вместо создания second.txt во втором репозитории тоже изменили first.txt, то мы бы имели две измененные версии одного файла и здесь уже git самостоятельно разрешить конфликт не может: нужно вмешательство человека. При грамотно спланированной работе команды, такие ситуации встречаются редко, и мы их рассматривать не будем. Интересующиеся могут посмотреть в интернете или в справке git по команде merge в разделе "How to resolve conflicts". \ No newline at end of file