我正按照Aptible上的说明尝试使用https://www.aptible.com/documentation/enclave/tutorials/quickstart-guides/python/django.html平台部署Django应用。我目前有两个遥控器:
Kurts-MacBook-Pro:lucy-web kurtpeek$ git remote -v
aptible git@beta.aptible.com:lucy/web.git (fetch)
aptible git@beta.aptible.com:lucy/web.git (push)
origin https://github.com/startwithlucy/lucy.git (fetch)
origin https://github.com/startwithlucy/lucy.git (push)
我在一个名为aptible
的分支上:
Kurts-MacBook-Pro:lucy-web kurtpeek$ git status
On branch aptible
nothing to commit, working tree clean
我想将工作树的全部内容推送到master
遥控器的aptible
分支。在Recursively add the entire folder to a repository之后,我尝试了git add --all
,然后是git commit -a
,
Kurts-MacBook-Pro:lucy-web kurtpeek$ git commit --help
Kurts-MacBook-Pro:lucy-web kurtpeek$ git add --all
Kurts-MacBook-Pro:lucy-web kurtpeek$ git commit -am "Git add --all followed by git commit -am"
[aptible 9ea97969] Git add --all followed by git commit -am
2 files changed, 9254 insertions(+)
create mode 100644 docker-compose.yml
create mode 100644 lucy-app/package-lock.json
后跟git push aptible aptible:master
:
Kurts-MacBook-Pro:lucy-web kurtpeek$ git push aptible aptible:master
但是,这给了我以下来自Aptible的错误消息:
remote: ERROR -- : No Dockerfile found. Aborting!
但目录中有Dockerfile
:
Kurts-MacBook-Pro:lucy-web kurtpeek$ ls Dockerfile
Dockerfile
知道为什么这个push
没有按预期工作? (我也相信该项目使用Git子树,但我不确定这是否相关)。
答案 0 :(得分:3)
来自man git-commit
:
-a, --all
Tell the command to automatically stage files that have been
modified and deleted, but new files you have not told Git about are
not affected.
基本上,当你运行git -am ...
时,这只提交git知道你有变化的文件。但是,既然你从未提交过Dockerfile
,那么就不会包括(因为git会< em> not 知道它紧靠它。)
您可以从git commit -am
的输出中确认这一点:仅提交了docker-compose.yml
和lucy-app/package-lock.json
:
[aptible 9ea97969] Git add --all followed by git commit -am
2 files changed, 9254 insertions(+)
create mode 100644 docker-compose.yml
create mode 100644 lucy-app/package-lock.json
在运行git add --all
之前运行git commit -am ...
实际上没有任何影响:git add --all
会暂存Dockerfile
,但当您运行git commit -am ...
时,{{1}没有进入。
要解决此问题,请不要使用Dockerfile
上的-a
标记,如下所示:
git commit