Я разрабатываю программное обеспечение для школьной оценки и решил использовать Github для размещения проекта. После создания кода на моем компьютере с Ubuntu я отправил его на Github, а затем клонировал на свой MacBook Pro. После редактирования кода на MBP я вернул его на Github. На следующее утро я попытался обновить свое репо на коробке Ubuntu с помощью git pull
, и это доставило мне множество проблем.
Как лучше всего работать в этой ситуации? Я не хочу форк моего собственного репо, и я действительно не хочу отправлять себе электронные письма или запросы на вытягивание. Почему я не могу просто относиться к Github как к мастеру и вставлять / извлекать из него все мои личные репозитории на разных компьютерах?
Можете ли вы уточнить, что вы подразумеваете под «всевозможными неприятностями»? Были ли у вас проблемы с объединением изменений?
Я создал репозиторий на своем компьютере с Ubuntu и отправил его на Github. Не думаю, что я клонировал его обратно на свой Ubuntu с Github. Это необходимо? И когда я говорю о всевозможных проблемах, я имею в виду, что я получил несколько сообщений об ошибках. В конце концов я использовал команду «commit -f», и она сработала. Сорта.
То, что вы хотите сделать, должно работать нормально, поэтому в деталях должно быть что-то незначительное. Если вы можете публиковать команды и сообщения об ошибках, мы, вероятно, сможем точно определить, что произошло. Ваше здоровье
Я предполагаю, что ваша проблема заключалась в том, что машина, на которой вы впервые создали репо, вылетела, когда вы попытались выполнить команду git pull
.
Когда вы клонируете существующий репозиторий git (как вы это делали на своем втором компьютере, MacBook Pro), вы автоматически настраиваетесь, чтобы ваши команды git pull
автоматически объединяли удаленный с вашими локальными изменениями.
Однако, когда вы изначально создаете репо, а затем делитесь им в удаленном репозитории, вам нужно ввести несколько команд, чтобы сделать все так же автоматизировано, как клонированное репо.
# GitHub gives you that instruction, you've already done that
# git remote add origin [email protected]: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 :-)
Это было именно то, что я искал. Я использую Ruby, но я также пытаюсь освоить Git, и я думаю, что делать это «трудным путем» сейчас, вероятно, лучше всего. :)
В этом и заключается суть git_remote_branch. Каждый раз, когда он запускает команду от вашего имени, он распечатывает команды, которые он запускает для вас, красным цветом. Кроме того, его можно использовать как шпаргалку с помощью команды объяснения: grb объяснять создание новой_бранки (вместо обычной команды grb create new_branch) :-)
«GRB: Это больше не просто гамма-всплеск».
Вы также можете добавить несколько открытых ключей SSH.
Вы клонировали репо из github в свой ящик Ubuntu, прежде чем пытаться извлечь из Github?