[英]Why is git not pushing contents of a folder?
将文件夹'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项目) 好吧,我好像已经解决了这个问题。 不知何故,git处于一种奇怪的状态。 我真的不明白怎么做,但由于某种原因,它没有添加文件夹中的任何文件。
我只是复制了该文件夹并给它一个新名称,然后按照我一直在做的完全相同的过程,它最终正确上传。
默认情况下,您无法将更改推送到存储库的签出分支。 它通常会导致重大问题! 通常会发生以下情况:
$ git push heroku master To ! [remote rejected] master -> master (branch is currently checked out) error: failed to push some refs to ''
由于您没有提到任何错误消息 ,我假设您已将以下内容添加到您的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
,钩子都会运行并检出新的分支。 有更好的方法来做这种事情,但这很简单。
摘要:默认情况下,当您推送更改时,它仅更改历史记录而不更改工作树 。 假设有人可能正在研究那棵树,所以做任何事都可能具有破坏性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.