Как лучше всего работать с Github и несколькими компьютерами?
-
08-07-2019 - |
Вопрос
Я занимаюсь разработкой программного обеспечения для школьной аттестации и решил использовать Github для размещения проекта. После создания некоторого кода на моем Ubuntu я перенес его на Github, а затем клонировал на свой MacBook Pro. После редактирования кода на MBP я вернул его обратно в Github. На следующее утро я попытался обновить свое хранилище на Ubuntu с помощью git pull
, и это доставило мне много неприятностей.
Как лучше всего работать в этой ситуации? Я не хочу раскошелиться на собственное репо и не хочу отправлять себе электронные письма или получать запросы. Почему я не могу просто относиться к Github как к мастеру и извлекать из него все свои личные репозитории на разных компьютерах?
Решение
Я предполагаю, что ваша проблема заключалась в том, что компьютер, на котором вы впервые создали репозиторий, потерпел неудачу при попытке выполнить команду git pull
.
Когда вы клонируете существующий репозиторий git (как вы это делали на своем втором компьютере, MacBook Pro), вы автоматически настраиваетесь так, чтобы ваши команды git pull
автоматически объединяли пульт с вашим локальные изменения.
Однако, когда вы изначально создаете репо, а затем делитесь им с удаленным репозиторием, вам нужно выполнить несколько команд, чтобы автоматизировать процесс, как на клонированном репо.
# GitHub gives you that instruction, you've already done that
# git remote add origin git@github.com:user_name/repo_name.git
# GitHub doesn't specify the following instructions
git config branch.master.remote origin
git config branch.master.merge refs/heads/master
Эти последние несколько инструкций настраивают git так, чтобы будущие git pull
из этого репозитория автоматически объединяли все удаленные изменения.
Следующее - это немного постыдная самореклама. Если вы используете Ruby, я создал инструмент на основе Ruby, который позволяет вам справляться со всеми этими видами вещей с помощью удаленных веток git. Неудивительно, что этот инструмент называется git_remote_branch : -)
Если вы не используете Ruby, мой инструмент, вероятно, будет слишком сложным для установки. Что вы можете сделать, так это посмотреть старый пост в моем блоге , где большая часть того, что может сделать для вас grb, была явно показана. Извлеките ваш файл git notes: -)
Другие советы
Вы также можете добавить несколько открытых ключей SSH .