Git 'Detached Head'

Я столкнулся с некоторыми проблемами при использовании github для получения некоторых исходных кодов. Моя цель - установить ndn-cxx-0.5.1.

  1. Во-первых, я использовал sudo git clone https://github.com/named-data/ndn-cxx для загрузки файлов. (Система сказала, что я не установил git, поэтому я использовал sudo apt-get install git для его установки.) Результаты были следующие:

    zhao@ubuntu:sudo apt-get install git
    zhao@ubuntu:/usr/local/lib$ sudo git clone https://github.com/named-data/ndn-cxx
    Cloning into 'ndn-cxx'...
    remote: Counting objects: 24174, done.
    remote: Total 24174 (delta 0), reused 0 (delta 0), pack-reused 24174
    Receiving objects: 100% (24174/24174), 11.04 MiB | 29.00 KiB/s, done.
    Resolving deltas: 100% (17441/17441), done.
    Checking connectivity... done.
    
  2. Во-вторых, я перехожу к корень файла: cd /usr/local/lib/ndn-cxx, часть результатов показала следующее:

    zhao@ubuntu:/usr/local/lib/ndn-cxx$ git tag
    ndn-cxx-0.4.1
    ndn-cxx-0.5.0
    ndn-cxx-0.5.1
    ndn-cxx-0.6.0
    
  3. В-третьих, я использовал sudo git checkout ndn-cxx-0.5.1, чтобы попытаться установить v0.5.1, но возникли проблемы:

    zhao@ubuntu:/usr/local/lib/ndn-cxx$ sudo git checkout ndn-cxx-0.5.1
    Note: checking out 'ndn-cxx-0.5.1'.
    
    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 aa8b378... docs: Prepare release 0.5.1
    

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

Можете ли вы помочь мне решить проблемы? Как я могу избежать таких проблем?

Спасибо!

1
задан 5 December 2017 в 09:36

1 ответ

Состояние отдельного заголовка - это то, в чем вы находитесь после того, как вы проверили некоторый коммит, который не является заголовком (самым последним коммитом) какой-либо конкретной ветви, это просто какое-то состояние фиксации в какой-то момент в истории проекта.

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

Проверьте, есть ли у проекта ветка 0.5 , если они все еще поддерживают эту версию, и вы хотите получить новые изменения, которые с тех пор были внесены в эту ветку. Но если вы специально выбираете этот тэг с фиксацией, потому что не хотите никаких изменений с тех пор, тогда у вас есть то, что вы хотели.

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

Пока вы просто хотите прочитать или скомпилировать этот старый коммит, не внося никаких изменений в проект, который вы хотите, чтобы другие получали, это не проблема.

3
ответ дан 5 December 2017 в 09:36

Другие вопросы по тегам:

Похожие вопросы: