如何将工作树的整个内容推送到远程分支?

时间:2018-02-06 17:43:52

标签: git aptible

我正按照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子树,但我不确定这是否相关)。

1 个答案:

答案 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.ymllucy-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