将文件夹'myapp'复制到我的工作文件夹后,我会执行以下操作将其添加到我的暂存区域:
git add .
然后提交更改:
git commit
然后我将我的更改推送到Heroku:
git push heroku master
所以我的文件夹名为'myapp'出现在heroku上,但问题是它完全是空的。
当我执行以下操作时,
git clone myapp myapp2
该文件夹在我的本地计算机上正确克隆所有预期的子内容。
有谁知道为什么子文件夹的内容没有被正确地推送到Heroku?我做错了什么?
回答以下问题:
git add .
的文件夹)中执行myapp
。执行git status
表示`没有更改添加到提交(使用“git add”和/或“git commit -a”)myapp
包含文件/文件夹(我的django项目)答案 0 :(得分:3)
好吧,我好像已经解决了这个问题。不知何故,git处于一种奇怪的状态。我真的不明白怎么做,但由于某种原因,它没有添加文件夹中的任何文件。
我只是复制了该文件夹并给它一个新名称,然后按照我一直在做的完全相同的过程,它最终正确上传。
答案 1 :(得分: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 hook实现。在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
,钩子都会运行并检出新分支。有更好的方法来做这种事情,但这很简单。
摘要:默认情况下,推送更改时,它只会更改历史记录,而不会更改工作树。假设有人可能在那棵树上工作,所以做任何事都可能具有破坏性。