See below the solid line for my original question.
I have a folder in my local directory that is untracked. When I run git status
, I get:
Changed but not updated:
modified: vendor/plugins/open_flash_chart_2 (modified content, untracked content)
When I type git add vendor/plugins/open_flash_chart_2
then try git status
again, it still says untracked. What's going on?
Here is a simple summary of my latest half hour:
Discovered that my Github repo is not tracking my vendor/plugins/open_flash_chart_2
plugin. Specifically, there's no content and it's showing a green arrow on the folder icon.
Tried git submodule init
No submodule mapping found in .gitmodules for path 'vendor/plugins/open_flash_chart_2'
Tried git submodule add git://github.com/korin/open_flash_chart_2_plugin.git vendor/plugins/open_flash_chart_2
vendor/plugins/open_flash_chart_2 already exists in the index
git status
modified: vendor/plugins/open_flash_chart_2 (untracked content)
Hunted for any file named .gitmodules
in my repository/local directory but couldn't find one.
What do I have to do to get my submodules working so git can start tracking properly?
This may be unrelated (I include it in case it helps), but every time I type git commit -a
rather than my usual git commit -m "my comments"
, it throws up an error:
E325: ATTENTION
Found a swap file by the name ".git\.COMMIT-EDITMSG.swp"
dated: Thu Nov 11 19:45:05 2010
file name: c:/san/project/.git/COMMIT_EDITMSG
modified: YES
user name: San host name: San-PC
process ID: 4268
While opening file ".git\COMMIT_EDITMSG"
dated: Thu Nov 11 20:56:09 2010
NEWER than swap file!
Swap file ".git\.COMMIT_EDITMSG.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
Swap file ".git\.COMMIT_EDITMSG.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
I am a complete newbie at Github and despite trying to go through the documentation, I'm a bit stumped by these particular problems. Thank you.
This question is related to
git
git-submodules
Had the same problem, but it was not solved in this discussion.
I hit also the submodule problem as described in the thread opening.
% git status
# On branch master
# Changes not staged for commit:
# modified: bundle/taglist (untracked content)
Looking at the diff I recognized a -dirty appended to a hash: Reading the docs again, solved the problem for me. http://web.mit.edu/jhawk/mnt/spo/git/git-doc/user-manual.html Look at section "Pitfalls with submodules"
Reason was, there were changes or untracked content within the submodule. I first had to got to the submodule directory, do a "git add" + "git commit" to get all content tracked within the submodule.
Then "git status" on the master stated
% git commit
# On branch master
# Changes not staged for commit:
# modified: bundle/taglist (new commits)
Now this new HEAD from the submodule could be commited to the master module.
This worked out just fine for me:
git update-index --skip-worktree
If it doesn't work with the pathname, try the filename. Let me know if this worked for you too.
Bye!
http://progit.org/book/ch6-6.html
I think you should read this to learn a little about submodule. It's well-written, and it doesn't take much time to read it.
This question has been answered already, but thought I'd add to the mix what I found out when I got these messages.
I have a repo called playground
that contains a number of sandbox apps. I added two new apps from a tutorial to the playground
directory by cloning the tutorial's repo. The result was that the new apps' git stuff pointed to the tutorial's repo and not to my repo. The solution was to delete the .git
directory from each of those apps' directories, mv
the apps' directories outside the playground
directory, and then mv
them back and run git add .
. After that it worked.
First go to the Directory : vendor/plugins/open_flash_chart_2 and DELETE
THEN :
git rm --cached vendor/plugins/open_flash_chart_2
git add .
git commit -m "Message"
git push -u origin master
git status
OUTPUT
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
I use the trick suggested by Peter Lada all the time, dubbed as "fake submodules":
http://debuggable.com/posts/git-fake-submodules:4b563ee4-f3cc-4061-967e-0e48cbdd56cb
It's very useful in several scenarios (p.e. I use it to keep all my Emacs config in a repository, including the current HEAD of all git repositories inside the elpa/el-get package directories, so I could easily roll back/forward to a known working version when some update breaks something).
I solved this issue by deleting .git file from my subfolder.
I just had the same problem. The reason was because there was a subfolder that contained a ".git" folder. Removing it made git happy.
I had the same problem with a big project with many submodules. Based on the answers of Chris Johnsen here and VonC here I build a short bash script which iterates through all existing gitlink entries and adds them as proper submodules.
#!/bin/bash
# Read all submodules in current git
MODULES=`git ls-files --stage | grep 160000`
# Iterate through every submodule path
while read -r MOD; do
# extract submodule path (split line at whitespace and take string with index 3)
ARRIN=(${MOD})
MODPATH=${ARRIN[3]}
# grep module url from .git file in submodule path
MODURL=`grep "url = " $MODPATH/.git/config`
MODURL=${MODURL##*=}
# echo path and url for information
echo $MODPATH
echo $MODURL
# remove existing entry in submodule index
git rm --cached $MODPATH
# add new entry in submodule index
git submodule add $MODURL $MODPATH
done <<< "$MODULES"
This fixed it for me, I hope it is of any help.
To point out what I had to dig out of Chris Johansen's chat with OP (linked from a reply to an answer):
git add vendor/plugins/open_flash_chart_2
# will add gitlink, content will stay untracked
git add vendor/plugins/open_flash_chart_2/
# NOTICE THE SLASH!!!!
The second form will add it without gitlink, and the contents are trackable. The .git dir is conveniently & automatically ignored. Thank you Chris!
Reference URL https://danielmiessler.com/blog/git-modified-untracked/#gs.W0C7X6U
I recently encountered this problem while working on a contract project(deemed classified). The system in which I had to run the code did not have internet access, for security purposes of course, and so installing dependencies, using composer and npm, was becoming huge pain.
After much deliberation with my colleague, we decided to just wing it and copy paste our dependencies rather than doing composer install or npm install.
This led us to NOT add vendors and npm_modules in gitignore. This is when I encountered this problem.
Changed but not updated:
modified: vendor/plugins/open_flash_chart_2 (modified content, untracked content)
I googled this a bit and found this helpful thread on SO. Not being too much of a pro in Git, and being a little intoxicated while working on it, I just searched for all the submodules in the vendors folder
find . -name ".git"
This gave me some 4-5 dependencies that had git on them. I removed all these .git folders and voila, it worked. I knows it's hack, and not a very geeky one anyways. O Gods of SO, please forgive me! Next time I promise to read up on gitlinks and obey O mighty Linus Tovalds.
Source: Stackoverflow.com