推送中包含的额外文件,例如设置.py

问题描述 投票:0回答:1

我正在努力适应这个程序并拥抱 Git。

我有一个 Django 项目,并在本地计算机上添加了一个 Git 存储库。有一个名为 Dev 的分支。

我希望能够将代码块推送到我的实时网络服务器,因此我在 Ubuntu/Nginix/Gunicorn 服务器上创建了一个裸存储库。

我可以使用以下方式将文件推送到远程存储库:

git push live Dev:master

但是,我一直在删除我的设置文件。即使我只提交一个文件,然后运行

git push live Dev:master
,为什么我的设置文件不断被移动?

我已将其添加到 .gitignore 中。我已按照说明清除缓存,然后重新添加所有内容...但是每次我进行推送时,我的本地设置文件都会被推送到实时服务器。

我该如何阻止这种情况发生?

希望这只是我一个布偶。我们将不胜感激您的指导...

git push gitignore
1个回答
0
投票

正如 @larsks 在评论中已经说过的,只有之前没有被跟踪过的文件,Git 才会忽略它。在 Git 中,文件只能属于以下类别之一:

  • 跟踪:跟踪文件是在某个时刻已提交或刚刚添加到索引中的任何文件。
  • 忽略:当配置文件 .gitginore 包含与文件路径匹配的路径规范时,文件被视为忽略。
  • 未跟踪:任何不属于跟踪或忽略类别的文件都被视为未跟踪。 Git 通过从工作目录的全部内容中减去跟踪和忽略的文件来确定未跟踪的文件。

这意味着,如果一个文件已经被跟踪,则不能简单地将其添加到

.gitignore
配置中以将其变成忽略文件。应首先将其从索引中删除(未跟踪),以便
.gitignore
配置生效并将文件标记为忽略。但是,如果您按照评论中所写的那样运行
git rm -r --cached .
,您将从索引中删除 every 跟踪文件。

在您的情况下,您只想删除带有

settings.py
git rm -r --cached settings.py
文件,提交删除
git commit -m "untrack settings.py"
,然后推送到远程
git push live dev:master
。此时,您的遥控器将不再有
settings.py
文件。

© www.soinside.com 2019 - 2024. All rights reserved.