Git添加和提交没有添加文件

时间:2018-01-12 01:22:13

标签: git

如果这是一个新手问题,我道歉,但我一直在搜索,我为何会这样做是傻眼了。

我有一些我想添加和提交的文件。

我跑:

git add .我还尝试了git add -Agit add -f -A

git commit -m 'message'

git log --graph --decorate --pretty=oneline --abbrev-commit master origin/master temp(以确保我的主分支在最新提交中)

git push origin master

但是没有变化。推动成功了。但是文件没有添加到我的存储库中。可能是什么原因?

编辑:

我应该提一下,Git似乎没有检测到新文件。当我指定要添加的确切文件时,例如git add myapp/newFile.html。我收到错误消息fatal: pathspec 'myapp/newFile.html' did not match any files.文件显然在文件夹中。

编辑2:

我尝试使用rm -rf .git重新制作我的文件夹,然后重新执行所有步骤。但是当我再次git add -A时,仍然没有添加新文件!我的文件夹感觉它被诅咒了什么。

编辑3:

ls -la

的结果
drwxr-xr-x 0 valachio valachio   512 Jan 11 20:35 .
drwxr-xr-x 0 valachio valachio   512 Jan 11 20:17 ..
drwxr-xr-x 0 valachio valachio   512 Jan 11 19:43 bungol
drwxrwxrwx 0 valachio valachio   512 Jan 11 19:43 config
drwxrwxrwx 0 valachio valachio   512 Jan 11 20:41 .git
-rwxrwxrwx 1 valachio valachio   804 Jan 11 19:43 manage.py
drwxrwxrwx 0 valachio valachio   512 Jan 11 19:43 misc (non-coding related stuff)
-rwxrwxrwx 1 valachio valachio   327 Jan 11 19:15 Pipfile
-rwxrwxrwx 1 valachio valachio 13798 Jan 11 19:43 Pipfile.lock
-rwxrwxrwx 1 valachio valachio    38 Jan 11 19:15 Procfile
-rwxrwxrwx 1 valachio valachio   115 Jan 11 20:08 README.md
-rwxrwxrwx 1 valachio valachio   368 Jan 11 19:43 requirements.txt
-rwxrwxrwx 1 valachio valachio    12 Jan 11 19:43 runtime.txt
drwxr-xr-x 0 valachio valachio   512 Jan 11 19:43 staticfiles

git ls-tree HEAD

的结果
100755 blob a0994e0c2c674f7964b97e73bf8b639e0bd15fa3    Pipfile
100755 blob 79baf37feb267b9479d4b8979623e9164d8d17c3    Pipfile.lock
100755 blob 2a05d1701bb03f8e565ccb53b5048a2ecbb8ea81    Procfile
100755 blob 0fa4a27c2e5a6e03c3edf2eb096766c20c0e9206    README.md
040000 tree c1179776614cf441fd04a5241b91869e3b24a776    bungol
040000 tree 8f0028f91df90b5124315f5e1cdd776c55fe2300    config
100755 blob 68141ee9e00d47db18f3598190234e8f8818dd5d    manage.py
040000 tree 4209dc1c056f595660ebf39ed57dc5bf72841597    misc (non-coding related stuff)
100755 blob d108cb2bdc916228474253e8c014dd1944df27f2    requirements.txt
100755 blob 5f61493782f81ae7c642d97051a8be79da5b7dba    runtime.txt
040000 tree a044a50441ede0a7718934b096f3c11ef4e5c2ae    staticfiles

编辑4:

我发现了问题。我使用的是Ubuntu,新文件没有访问权限。我必须使用chmod 755向当前用户授予对这些新文件的访问权限,然后才能运行。

抱歉,在原始问题中我没有提到这一点。感谢所有提供答案的人。

4 个答案:

答案 0 :(得分:3)

让我们澄清一下git的几个概念:

  1. 您的本地目录是一个git存储库。所有git命令都以某种方式与本地存储库交互。某些命令还与远程存储库进行交互

  2. git add .将当前目录中的所有文件都放到本地存储库的暂存区域。无论何时执行此操作, git将始终添加文件,因为这是git的工作方式。请注意,“添加”文件仅针对下一个git commit进行分段。

  3. git commit在您的本地git存储库中创建一个提交,其中包含您之前添加到暂存区域的文件。同样,此命令将始终执行此操作。实际上,您帖子中git ls-files的输出证明您的所有文件都已添加并提交到本地存储库。

  4. 您的本地仓库可以连接到GitHub上的远程仓库或运行git的任何其他服务器。如果您执行git clone,您的本地仓库将会有一个名为origin的远程指向您指向克隆的仓库。如果您改为git init,则可以使用git remote add添加任意名称的遥控器。

  5. 在本地仓库中配置远程仓库后,可以使用git push将提交从本地仓库推送到远程仓库。同样,git pull会将提交从远程提取到您的本地仓库。

答案 1 :(得分:1)

尝试git add *git add .*

答案 2 :(得分:1)

如果它没有检测到变化,那么你可以重新开始。从目录中删除.git文件并再次重新初始化。这可能不是一个好习惯,但如果你是git的新手,那么有时候这种修复会有所帮助。

还要确保正确设置了用户访问凭据。

答案 3 :(得分:0)

这个问题可能出现在新克隆的项目上。不要忘记检查此存储库是否使用 Git Submodules a.k.a.nested reps。不管你git add -A && git commit多少次;作为额外的步骤,您必须导航到嵌套文件夹并在那里提交。只有这样,您才能最终获得漂亮而清晰的 git status 输出。

顺便说一句,我不希望这个子模块和你自己跟踪父存储库中的所有内容,你可以参考这篇文章:https://stackoverflow.com/a/1759990/11239755