Git Ignore对文件夹的更新

时间:2017-09-28 16:01:02

标签: git

我在Github上有一个项目,我在上传更改之前在本地开发。然后,我在生产服务器上下载更改。方法很简单:

我的电脑:

git add .
git commit -m ""
git push -u origin master

服务器:

git pull

问题在于,在我的Django项目中,有一对文件夹的内容在上传到服务器时会产生影响:迁移文件夹和媒体文件夹。第一个导致当我在服务器上执行makemigrations时,它告诉我没有要做的更改,并且媒体文件夹添加了不需要的文件。我通常必须在服务器上下载时手动删除这些文件夹上的所有更改。

有没有办法,当我执行git add .时,这些2个文件夹从未被包含在内?至少在我说他们应该这样做之前。

1 个答案:

答案 0 :(得分:0)

令人惊讶的是,我没有找到这个问题的基本答案。

添加名为.gitignore的文件。该文件可以指定每行要忽略的文件模式。通配符也可以工作。类似的东西:

*.pyc  # ignore all pyc files
path/to/your/media*
# etc ...

提交.gitignore文件。

如果文件已提交到您的存储库,您可以使用git rm --cached your/files删除它们。如果要删除目录,也要添加-r。它们将保留在磁盘上,但要从git repo中删除。请注意,当您拉动服务器时,它们可能会被删除。在这种情况下,您需要备份它们,然后手动添加它们。由于您提交了.gitignore,因此它们也应该在服务器上被忽略。

另一种(恕我直言更好)处理此问题的方法是创建一个“生产”分支或标记,让服务器跟踪它。这样,您可以继续在master中工作,然后在测试后将更改合并到生产分支。更容易以这种方式跟踪不同版本的文件。