1

Я всегда разрабатывал большой проект на одной машине. Я использую GitHub для контроля версий. Теперь я только что получил новую машину. Я хочу разработать проект на новой машине. Мне интересно, какова лучшая практика.

Что я попробовал, так это на новой машине:

git clone https://github.com/softtimur/project.git

В проекте папки я сделал

git checkout master

который возвращается

Already on 'master'
Your branch is up-to-date with 'origin/master'.

Затем я хотел перейти к предыдущей версии файлов:

git checkout 19b3644 

И я получил сообщение:

Note: checking out '19b3664'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 19b3664... m=back to no lazyload and no toModifyBeforeSubmit

Мой вопрос не о том, как исправить состояние detached Head . Я хочу знать, должен ли я создать новую ветку на этой новой машине. Мне не нужно кодировать с 2-х машин, я мог бы создать нового master , и мне больше не нужно трогать старую машину.

У меня всегда есть проблемы в понимании мерзавца ... Может ли кто-нибудь помочь?

1 ответ1

3

Если вы определенно переключаетесь с одной машины на другую, просто выполните git clone и возобновите работу с любого тега / ветки, которую вы хотите. Вам не обязательно нужна новая ветка, или, по крайней мере, это не связано с тем, что вы изменили свои машины, ветки предназначены только для организации вашей работы, так что все зависит от того, как вы используете git.

git - это децентрализованная VCS: у вас есть столько master веток, сколько у вас есть репозиториев, веток для каждого репозитория, а затем вы можете просто "связать" их из одного репозитория в другой.

Однако, предупреждаем : когда вы клонируете git-репозиторий, чтобы начать работать в другом месте, вы можете не получить все, потому что некоторые локальные данные не хранятся в репозитории (и, следовательно, не распространяются), поэтому вам нужно будет проявить особую осторожность, чтобы переместить его самостоятельно, если вам это нужно , В этой области вы должны хотя бы рассмотреть: грязные файлы в рабочем дереве, тайник, ваш конфиг, ваши хуки и т.д.

Обновление на основе ваших следующих комментариев: Ваша проблема, похоже, не имеет ничего общего с изменением серверов. Если вы хотите забыть (то есть полностью забыть эти коммиты и не сможете получить их в будущем), то некоторые коммиты и вернитесь к 19b3664 просто выполните git reset --hard 19b3664 . Ваша главная ветка HEAD теперь снова будет на этом коммите. Опять же: вы теряете все предыдущие коммиты, которые были после этого, поэтому будьте предельно осторожны (или делайте хорошие резервные копии). Я бы порекомендовал вместо этого следующее:

  • git checkout master
  • git branch previous_work
  • git reset --hard 19b3664

Конечным результатом будет возвращение мастера ветвления к этому конкретному идентификатору коммита, но тогда у вас всегда будет ветвь previous_work (используйте любое имя, которое имеет смысл в вашем случае), чтобы вы могли вернуться к нему при необходимости.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .