2012-04-13 63 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

相關問題