Git Submodules. Pulling into a new clone of the super-project

前端 未结 6 582
迷失自我
迷失自我 2021-01-30 03:35

OK. So I thought I had this licked ... but now ....

I have a project which includes one small library from GitHub as a submodule. In the original version of that super-p

相关标签:
6条回答
  • 2021-01-30 04:09

    It seems that now (in 2019) installing latest GIT client could solve the problem according to comments below. This should be the best solution for now.


    I have the same problem as you. This is a bug in git: http://git.661346.n2.nabble.com/BUG-git-submodule-update-is-not-fail-safe-td7574168.html

    In short, for your problem, try:

    # rm -rf external_libraries/BEACHhtml
    # git submodule update
    

    It seems there is something wrong with the previous checkout folder, remove it, and update again solves the problem.

    0 讨论(0)
  • 2021-01-30 04:20

    If you are reading in 2019 or later, just update the git client. Worked for me.

    0 讨论(0)
  • 2021-01-30 04:31

    I had this problem (flaky network so I got dropped submodule checkout like this) and I solved it by making this script (named it git-submodule-fix so I could run it as git submodule-fix)

    #!/bin/bash 
    
    for arg 
    do 
      echo $arg 
      find . -name "`basename $arg`" | grep "$arg\$" | xargs rm -fr
    done
    

    If you get this i.e. from a git submodule update

    fatal: Needed a single revision
    Unable to find current revision in submodule path 'some/submodule/path'
    

    do

    git submodule-fix some/submodule/path
    git submodule update
    
    0 讨论(0)
  • 2021-01-30 04:34

    Solved by deleting 2 directories and refetching submodule:

    1. Go to external_libraries/BEACHhtml and look into .git file. It's content should be something like gitdir: ../../.git/modules/external_libraries/BEACHhtml
    2. Delete both external_libraries/BEACHhtml and .git/modules/external_libraries/BEACHhtml directories.

    From now on git submodule update runs without errors.

    0 讨论(0)
  • 2021-01-30 04:34

    use a diff tool to compare the original clone that's working and this one. Also, what does git submodule output. Ensure you are pointing to the same branch in each repo before you do.

    I'm suspecting that you've switched to a branch or older revision where the submodule was not defined.

    hope this helps

    0 讨论(0)
  • 2021-01-30 04:36

    I had the same issue with a submodule on a project. When I tried to clone the submodule separately it worked well.

    I've tried all of the answers above, but without success (git submodule update, ..., removing the submodule folders, ...).

    The issue disappeared after update of git (from Git-1.7.11-preview20120710) to latest version (to Git-1.8.1.2-preview20130201) at the time. Strangely my colleagues had even older version, worked without any issues, but they were on Mac. I'm on Win7 64bit.

    0 讨论(0)
提交回复
热议问题