0

我有一个 Github 存储库,我正在尝试将存储库(它已经克隆)拉到我的家用计算机,但由于某种原因,它没有从 Github 存储库中提取所有文件夹。

我尝试了 fetch 和 pull 但结果是一样的。

当我进行拉取时,在更新结果下,我在 .pyc 文件上收到 DIRTYTREE 错误。

这是一个简单的python项目。

我的 github 链接是https://github.com/PREM1980/Test/tree/master/ecomstore/ecomstore/templates

我要检索的文件夹是模板。

4

1 回答 1

1

当我进行拉取时,在更新结果下,我在 .pyc 文件上收到 DIRTYTREE 错误。

您给我们的路径下没有 .pyc 文件。但我敢打赌,你实际上是在拉整个 repo,而不是它下面的一些随机子目录,尽管你在问题中说了什么,因为该 repo中确实有 .pyc 文件。

问题是任何时候你导入一个 .py 文件,它都可以重写 .pyc 文件,导致你领先于主人。一旦你以某种不被跟踪的方式领先于主人,如果你想拉或推,你将需要合并、变基或以其他方式清理东西。一个好的 git 教程会解释这一点。

但是解决这个问题的正确方法是不签入 .pyc 文件。几乎没有充分的理由这样做,也有很多充分的理由不这样做。

https://github.com/github/gitignore上有大量.gitignore文件(如果您使用 Github 网站或客户端创建新项目,甚至会自动应用相应的文件)。您会注意到 Python 以. 你也应该这样做。.py[cod]

如果您不想使用 a .gitignore,这仅意味着您不能在-a任何地方使用该标志;您必须手动管理哪些文件已签入和未签入,并且不要手动添加 .pyc 文件。

如果您有充分的理由签入 .pyc 文件,您可能希望阻止 Python 更新它们,除非您明确选择这样做。换句话说,在正常开发过程中,始终使用 -B 标志或PYTHONDONTWRITEBYTECODEenv 变量运行;然后,当您准备好推送时,删除 .pyc 文件并让 Python 手动生成它们。

如果你真的想以你正在做的方式管理你的 .pyc 文件,这不是偶然的,你只是想知道如何手动合并你的方式来摆脱意外的冲突:你做的方式与任何其他冲突文件。例如,stash, pull,unstash将使您有机会手动选择一个 .pyc 版本或另一个,而不会搞砸其他任何东西。(你必须知道你想要哪个......但如果你不知道,你没有充分的理由以这种方式管理你的 .pyc 文件。)

于 2013-05-02T00:46:38.233 回答