github更改未进行提交

时间:2012-05-23 14:04:51

标签: git github

我有一个非常基本的github设置,其中包含自述文件,目录和其中包含html文件的另一个目录。在github上我只能查看自述文件和第一个文件夹,但没有查看其内容,我收到此消息

tc349 ryntc3$ git add *
tc349 ryntc3$ git status
On branch 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:   week1 (modified content)

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

我觉得如果我要加入所有这些都不应该是一个问题。有什么帮助吗?

13 个答案:

答案 0 :(得分:64)

你试过吗

git add .

这会递归到子目录,而我认为*不会。

请参阅here

答案 1 :(得分:36)

我认为您必须进入 week1 文件夹并删除 .git 文件夹:

sudo rm -Rf .git

然后返回顶级文件夹并执行:

git add .

然后执行提交并推送代码。

答案 2 :(得分:27)

在我的情况下,我需要一个

 git add files
 git commit -am 'what I changed'
 git push

需要提交'a'。

答案 3 :(得分:23)

week1是子模块吗?

请注意git status命令输出中的相关部分:

  

(提交或丢弃子模块中未跟踪或修改的内容)

尝试cd week1并发出另一个git status以查看您对week1子模块所做的更改。

有关子模块如何在Git中工作的详细信息,请参阅http://git-scm.com/book/en/Git-Tools-Submodules

答案 4 :(得分:8)

在我的情况下,有一个子目录,其中有一个create table Planillas( IdPlanilla number, fecha date, empleado constraint fk1_planillas references empleados, salario number, constraint pk_planillas primary key(idplanilla,empleado,fecha)) 目录。

我所做的只是从我的子目录中删除.git目录。

答案 5 :(得分:2)

我遇到了同样的问题。我最终进入了“不进行提交”的子目录,并从那里添加,提交和推送。之后,上升到主目录的一个级别,并能够正确推送。

答案 6 :(得分:2)

如果它是子模块,则需要使用git add进入它。 && git commit -m'您的消息'

您可以从那里CD并推送到所需的任何分支。

答案 7 :(得分:2)

在我的情况下,问题是我要推送的子文件夹是git文件夹本身

所以我做了以下

  1. 进入要推送的子文件夹并运行它:
rm -rf .git
  1. 然后运行:
 git rm --cached <subfolderName>
  1. 然后进入主项目文件夹并运行它(确保在文件夹名称后添加/)
    git add <folderName>/
    git commit -m "Commit message"
    git push -f origin <branchName>

答案 8 :(得分:1)

无论我做了什么,我都会收到同样的信息。

为了解决这个问题,我删除了.gitignore,我没有得到Github更改,因为不再提交提交消息了​​。在我运行git add之前它允许我提交一次。然后它会显示相同的信息。

我不确定为什么.gitignore文件导致了问题,但我在本地计算机上添加了,很可能没有正确同步它。

答案 9 :(得分:1)

对我来说,我必须提交其中包含.git的子目录,因为父文件夹和子文件夹都有要推送的遥控器。然后提交并推送父目录。

答案 10 :(得分:1)

我尝试了所有关于Stackoverflow的建议。包括-a或-am在内的任何内容均无济于事。

如果您相同,请执行此操作。

所以,问题是,git认为您的某些子目录是根项目中的子项目。至少在我看来,不是那样的。它只是常规子目录。不是单个项目。

移动该常规子目录,该子目录没有被推送到某个临时位置。

从该目录中删除隐藏的.git文件夹。

cd到根目录。

再次

git init

再次

git add .

git commit -m "removed notPushableDirectory temporarily"

git push -f origin master

由于git会看到远程git与您的本地结构之间的冲突,因此我们必须强制使用它。记住,我们造成了这种冲突。因此,不必担心强迫它。

现在,它将把该子目录作为子目录推送,而不是作为根模块中的子模块或子项目推送。

答案 11 :(得分:0)

此命令可以解决问题:

git add -A

所有文件和子目录将被添加以进行跟踪。

希望有帮助

答案 12 :(得分:0)

相信会发生这种情况,因为您有一个子存储库“子模块”,该子存储库的更改尚未被暂存和提交。

有一个类似的问题,我的IDE一直报告未提交的更改,并且运行阶段(git add .)和提交(git commit -m "message")命令无效。事后看来,这可能是因为子存储库具有需要暂存和提交的更改,而不是父存储库。

解决此问题的步骤

  1. cd进入子模块(具有一个名为.git的隐藏文件夹)并执行命令以暂存(git add .)和提交(git commit -m "Update child repo"
  2. cd ..返回到父仓库,并执行命令来暂存(git add .)和提交(git commit -m "Update parent repo"

没有帮助的建议

  • sudo rm -Rf .git ==请勿使用此命令==它将永久删除子模块存储库历史记录(GIT的目的)
  • git add -A ===添加了未跟踪的文件,但没有解决问题
相关问题