我正在尝试将一些文件提交给Github,转到GitHub Pages分支。作为回应,它表示"没有添加到提交但未跟踪的文件存在"列出我的根目录中的每个文件夹之后。我的项目位于Documents文件夹中的文件夹内。有谁知道为什么会发生这种情况?
On branch gh-pages
Untracked files:
../../.atom/
../../.bash_history
../../.gimp-2.8/
../../.gitconfig
../../.gradle/
../../.idlerc/
../../.jssc/
../../.mongorc.js
../../.node_repl_history
../../.oracle_jre_usage/
../../.ssh/
../../.thumbnails/
../../.vim/
../../.viminfo
../../AppData/
../../Contacts/
../../Desktop/
../Thumbs.db
../desktop.ini
../forge.aup
../hp.system.package.metadata/
../../Downloads/
../../Dropbox/
../../Favorites/
../../Helper/
../../IntelGraphicsProfiles/
../../Links/
../../MongoDB/
../../Music/
../../OneDrive/
../../Pictures/
../../Saved Games/
../../Searches/
../../Videos/
nothing added to commit but untracked files present
答案 0 :(得分:1)
似乎大多数人都错过了这个问题的关键,所以我会补充一下:
您想知道为什么它将项目目录外的内容列为未跟踪状态。正如axiac观察到的,这很可能意味着.git文件夹位于错误的位置。 .git文件夹包含所有元数据和特定于repo的配置,以及索引和数据库的状态(进而包含版本历史记录等)。
当你进入一个给定的工作目录并运行一个git命令时(如果它是一个希望你在回购中的那个......大多数都是这样),它会寻找一个该目录中的.git文件夹;然后,如果它找不到它,它会检查父目录,依此类推,直到它找到一个或到达文件系统根目录。如果它没有找到它会给出错误,但如果确实找到了错误,那么它将成为存储库的默认工作树的根。 (在某些情况下,此说明不适用,但它应适用于您的情况。)
所以.git/
可能在错误的地方。但这提出了另一个问题:为什么git不认为你已经删除了它已经知道的一切?
当然,如果这是一个你刚刚创建的新回购,那就可以解释它;但是,如果它是其他任何东西,git应列出删除前一次提交中的任何文件,同时也是未跟踪的更改。 (至少,如果你做了git status
,应该这样做。
那么下一步该做什么:
如果您要创建新的回购,最好从文件系统根目录.git/
删除cd
到项目目录,然后重新运行git init
如果这是一个现有的仓库,请尝试运行git status
以确认它看到未删除的所有内容以及所有顶级文件/文件夹作为未跟踪文件。如果是这样,您肯定需要将文件系统根目录中的.git/
移动到项目目录。
然后你应该像往常一样暂存和提交你的更改。
答案 1 :(得分:0)
“没有添加到提交”消息指的是已添加的空目录。 GIT管理文件的版本,而不是目录。当您在其中一个目录中添加文件时,您会看到它们被列为“新文件:...”。 “未跟踪文件存在”是指“../Thumbs.db”,尚未运行git add。 GIT不会“跟踪”文件,除非它们已经“添加”到GIT维护的索引中。
答案 2 :(得分:-1)
如果要提交所有文件,请尝试以下命令
git add ../../.
git commit -m "commit message"
根据您的问题,您可能位于repo路径的两级子目录中并执行git命令
初始化项目存储库是好的,所以从根目录中删除.git文件夹并将目录更改为项目路径并按git init
初始化git repo,谢谢@MarkAdelsberger