2012-04-13 135 views
1

文件夹“的myapp”复制到我的工作文件夹后,我做了以下将其添加到我的暂存区域:为什么git不会推送文件夹的内容?

git add . 

,然后提交更改:

git commit 

然后我推我改变的Heroku:

git push heroku master 

所以,我的文件夹,名为“MYAPP”存在于Heroku的,但问题是,它完全是空的。

当我这样做,

git clone myapp myapp2 

的文件夹克隆正确我的本地机器上的所有预期的个子。

有谁知道为什么子文件夹的内容没有正确推送到Heroku?我究竟做错了什么?

要回答以下问题:在我的最高级别文件夹(包含文件夹myapp的文件夹)

  1. 我做git add .。这样做git status显示'无添加更改提交(使用“混帐添加”和/或“git的承诺-A”)
  2. 是,myapp包含的文件/文件夹(我的Django项目)
  3. 我删除了我的.gitignore文件,因为我将我的虚拟环境放置在另一个地方,因此它不再位于我的项目文件夹中,所以我不认为这会影响它。
+0

你在'myapp'文件夹做'git的附加.'或别的地方?你提交后显示的是什么'git status'? – tpg2114 2012-04-13 23:48:47

+0

文件夹myapp中是否有文件?因为git不跟踪目录,只有目录内的文件。 – Odi 2012-04-13 23:50:58

+0

文件是否被.gitignore排除? – Robbie 2012-04-13 23:55:45

回答

3

好吧,我似乎已经解决了这个问题。不知何故git陷入了一种奇怪的状态。我真的不知道如何,但由于某种原因,它不是在文件夹中添加任何文件。

我简单地复制该文件夹并赋予它一个新的名字,然后跟着我一直有做完全相同的过程,它最后加载正确。

0

默认情况下,不能将更改推送到存储库的签出分支。它通常会导致重大问题!这是通常会发生什么:

 
$ git push heroku master 
...error messages... 
To heroku 
! [remote rejected] master -> master (branch is currently checked out) 
error: failed to push some refs to 'heroku' 

既然你没有提到任何错误信息,我假设你已经添加了以下到您的heroku库配置,或者你正在运行一个相当老版本的Git:

 
[receive] 
     denyCurrentBranch = false 

这听起来像你想,只要你推一个新版本的heroku库检查出的主分支的新副本。这可以通过post-receive钩子来实现。在您的heroku存储库.git/hooks/post-receive中创建一个文件,并为其授予+x权限。

#!/bin/sh 
while read oldrev newrev refname 
do 
    if test "$refname" = refs/heads/master 
    then 
     (cd ..; GIT_DIR=.git; git reset --hard) 
    fi 
done 

现在,每当你推一个新master分支heroku,钩将运行,并检查了新的分支。有更好的方法来做这种事情,但这很简单。

摘要:默认情况下,当你推的变化,它只是改变了历史但不是工作树。假设有人可能在那棵树上工作,所以做任何事情都可能是破坏性的。

+0

我没有收到任何错误消息,并且奇怪的是,如果我创建了一个名为'TestFolder'新的子文件夹,并创建一个文本文件,它叫'TestFile.txt'那么这确实是被推到Heroku的。但是,我的Django应用程序存储在'myapp'文件夹中。 – user1328021 2012-04-14 04:45:28

+0

1)尝试在客户端上执行'git ls-tree -r --name-only master'。如果这不显示所有文件,那么你还没有提交它们。 2)如果显示所有文件,请尝试在服务器上执行'git reset --hard master'来检查它们。 3)如果这不起作用,请在客户端和服务器上运行'git rev-parse master',查看它们是否匹配。 – 2012-04-14 05:27:45

+0

1)此命令显示所有文件2)当我在服务器上运行该命令我得到'致命的:模棱两可的说法“主人”:未知修订或路径不是在工作tree'。但是'git status'显示我在分支主人身上。当我做'git reset --hard'时,我得到'致命的:无法解析'HEAD'作为一个有效的ref'。 – user1328021 2012-04-15 04:01:14