Git‘分离头’

Git‘分离头’

我在使用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

分离头状态是指在您检出某些提交之后所处的状态,这些提交并不是任何特定分支的头(最近的提交),它只是项目历史记录中某个时间点的某些提交状态。

在这种情况下,您签出了已标记的提交。如果您特别想查看标记时的项目,那么您已经成功了。然后您可以根据需要制作和安装软件。

检查项目是否有 0.5分支如果他们仍在维护该版本,而您想要获取自此之后对该分支所做的新更改。但如果您特意选择该标记提交,因为您不想要自此之后的任何更改,那么您就得到了想要的结果。

如果您想要亲自进行任何更改,则分离的头部状态很重要。由于您不在任何特定分支的头部,因此您所做的更改不会推进任何分支,因此它们仅与拥有提交 ID 的您相关。您可以根据当前头部创建一个新分支,然后可以推送该分支并与他人共享。但您所做的只是将更改应用于某个随机的旧提交,并且这个新分支不会包含自该随机提交以来对项目所做的任何更改。您可能想要做的是签出当前分支并将更改应用于该分支。

只要您只想读取或编译旧的提交,而不对您希望其他人接收的项目进行任何更改,那就没有问题。

相关内容