Can't stage folder for commit with git add . or git add -u
Asked Answered
S

2

5

so if I do a git status I get:

bsg-integration> git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)

    modified:   bsg-services (untracked content)

no changes added to commit (use "git add" and/or "git commit -a")

I then tried using git add . and git add -u but I still get the same thing when i use git status. What is going on and how to I push this folder to github? On my github repo the folder bsg-services is showing up as a greyed out folder. What does this mean? Thanks!

Suasion answered 11/6, 2014 at 16:9 Comment(0)
P
7

It (bsg-services) is a submodule. (see "What is this grey git icon?")

You need to:

  • add/commit by going in that folder first (and push from that sub repo),
    (a git status inside bsg-services will tell you more)
  • then go back to the parent repo (where you are), add, commit and push.
    The commit you will have done inside bsg-services will have modified the gitlink entry in the index of your parent repo.

So you need both pushes:

  • one from the submodule repo to its upstream repo (a git remote -v should show you that)
  • one from the parent repo in order to record the new gitlink SHA1 which memorizes the new state of that submodule.
Pros answered 11/6, 2014 at 16:10 Comment(1)
S
4

I had same problem.

Goto bsg-services subdirectory and make a commit. Thats It!

What happened was you had another git repository inside the bsg-services directory. If u need to get rid of that remove .git directory from bsg-services sub-directory.

Spearhead answered 17/9, 2014 at 11:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.