Git 'Cabeça Destacada'

1

Eu encontrei alguns problemas ao usar o github para obter alguns códigos-fonte. Meu objetivo é instalar o ndn-cxx-0.5.1.

  1. Primeiramente, usei sudo git clone https://github.com/named-data/ndn-cxx para baixar os arquivos. (O sistema disse que eu não tinha instalado git , então usei sudo apt-get install git para instalá-lo.) Os resultados foram os seguintes:

    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. Em segundo lugar, viro para a raiz do arquivo: cd /usr/local/lib/ndn-cxx , uma parte dos resultados mostrou o seguinte:

    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. Em terceiro lugar, usei sudo git checkout ndn-cxx-0.5.1 para tentar instalar a v0.5.1, mas os problemas apareceram:

    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
    

Eu costumava instalá-lo com sucesso usando as mesmas etapas, mas problemas apareceram quando eu tentei instalar um novo agora.

Você pode me ajudar a resolver os problemas? Como posso evitar tais problemas?

Obrigado!

    
por Silence 05.12.2017 / 03:48

1 resposta

3

Estado da cabeça separada é o que você está depois de ter feito check-out de alguma confirmação que não é a cabeça (commit mais recente) de qualquer ramificação em particular, é apenas algum estado de confirmação em algum momento do histórico do projeto.

Nesse caso, você registrou uma confirmação que foi marcada. Se você queria especificamente ver o projeto como estava no momento em que foi marcado, você conseguiu. Você pode então fazer e instalar o software como quiser.

Verifique se o projeto tem um no caso de eles ainda estarem mantendo essa versão e você deseja obter novas alterações que já foram feitas para essa ramificação. Mas se você escolhe especificamente o commit marcado porque você não quer nenhuma das alterações desde então, então você tem o que queria.

O estado da cabeça separada é relevante se você quiser realmente fazer alterações. Como você não está à frente de qualquer ramificação em particular, as alterações feitas não avançam em nenhuma ramificação, portanto, elas são relevantes somente para você que detém a ID de confirmação. Você pode criar uma nova ramificação com base no seu cabeçalho atual e, em seguida, pode impulsionar essa ramificação e compartilhá-la com as pessoas. Mas então tudo o que você está fazendo é aplicar mudanças em algum commit antigo aleatório, e este novo branch não irá incorporar quaisquer mudanças que já tenham sido feitas no projeto desde o commit aleatório. O que você provavelmente quer fazer é verificar um branch atual e aplicar as mudanças nele.

Contanto que você queira apenas ler ou compilar aquele commit antigo sem fazer qualquer alteração no projeto que você deseja que outros recebam, isso não é um problema.

    
por thomasrutter 05.12.2017 / 04:15