Перенос данных через gitHub

Я новичок в гит, но пытаюсь разобраться. Подскажите, как правильно переносить данные с одного удаленного репо в другой. Моделирую ситуацию, когда есть рабочий комп(firstMachine), сервер(secondMachine) и репо на gitHub (gitRepoTest). Опишу свои действия с комментариями, чтобы знающие люди поправили в нужных местах:

  1. Создал репо в gitHub/gitRepoTest, создал в нем файл README.MD со сторокой "created in gitHub"
  2. Перенес в первый локальный репо (папка firstMachine) код:
  • git init инициализирую репо
  • git remote add sn https://github.com/user/repo.git добавил удаленный репо и присвоил ему короткое имя "sn"
  • git fetch sn добавил удаленный репозиторий
  • git checkout main перешел в ветку main
  1. Такми образом в локальном репо (firstMachine) у меня отобразился файл README.md Моя задача - создать ветку, работать в ней, отобразить изменения, созданные в данной ветке в репозитории на gitHub, а после этого перенести данные изменения на сервер (secondMachine):
  • git checkout -b level-1 создаю ветку level-1 и перехожу в нее
  1. Делаю изменение в файле README.md - добавляю строку "new string in firstMachine" и сохраняю изменения:
  • git add README.md
  • git commit -m "created commit in firstMachine"

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

  1. Чтобы ветка level-1 отобразилась в gitHub/gitRepoTest c изменениями, которые я зафиксировал. Я сумел выполнить это командой:

2. Вторая задача - мне нужно правильно отправить изменения из gitHub/gitRepoTest на secondMachine.
При этом дальнейшее взаимодействие такое - я что-то правлю на firstMachine, отправляю в gitHub и оттуда на secondMachine. Вот с этим пока загвоздка


Ответы (2 шт):

Автор решения: insolor
  1. Первый пункт без изменений
  2. Просто клонируете репозиторий, для этого на обоих компах выполняете: git clone https://github.com/user/repo.git. Дополнительно прописывать remote, делать checkout на главную ветку после этого не нужно, это происходит автоматически при клонировании
  3. Делаете изменения как вы описали (создание ветки, редактирование, git add ..., git commit), потом отправляете изменения в репозиторий на github командой git push без всяких дополнительных параметров (если вы уже находитесь в нужной ветке, то ее имя при пуше указывать не нужно). Если ветка с таким именем еще не пушилась, нужно выполнить команду git push -u origin имя_ветки.
  4. На втором компе делаете git pull (подтянутся изменения той ветки, в которой вы находитесь) или git pull origin имя_ветки - если ветки в репозитории на этом компе еще нет. Вместо origin пишите название вашего remote, если он у вас назван как-то по-другому (например, у вас в вопросе это sn).
→ Ссылка
Автор решения: elarri

Итак, не уверен, что это верно по кол-ву кода, но это сработало... на secondMachine я так же инициализировал репо, добавил удаленный репо, в котором уже была ветка level-1. Далее я перешел в эту ветку:

$ git init  
$ git remote add serv https://github.com/user/gitRepoTest.git  
$ git fetch serv  
$ git checkout level-1

Вобщем - все. На secondMachine отобразились изменения, сделанные на firstMachine.
Теперь любые изменения на firstMachine сохраняются и пушатся git push в ветку level-1, а на secondMachine их так же легко забрать git pull

→ Ссылка